서버로드를 추진하고 모니터 경고를 트리거하는 rsync cron 작업이 있습니다. 높은 수준으로 작업을 실행하도록 설정하면 시스템로드 값에 미치는 영향을 효과적으로 줄일 수 있습니까?
답변
부하를 줄이지 않습니다.
가능한 리소스 경합이있는 경우 다른 프로세스가 CPU 시간을 더 자주 사용할 수 있습니다 (사용 가능한 CPU 시간이 충분하지 않은 경우 여러 프로세스 “경쟁”).
답변
nice 값을 변경해도 시스템로드가 직접 감소하지는 않습니다. 그러나 나머지 프로세스에 더 많은 리소스를 제공하는 데 사용할 수 있습니다.
에서 http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/
커널은 좋은 가치에 따라 프로세스에 필요한 프로세서 시간을 결정합니다. 가능한 좋은 값 범위는 -20 ~ 20입니다. 좋은 값 -20을 갖는 프로세스는 매우 높은 우선 순위입니다. 값이 20 인 프로세스는 우선 순위가 매우 낮습니다.
따라서 다른 프로세스가 우선 순위를 갖도록하려면 다른 프로세스보다 높은 레벨에서 cron 작업을 실행하려고합니다.
이렇게하려면 cron 스크립트를 다음과 같이 실행하십시오.
/bin/nice -n 10 /path/to/cron-script
그러면 cron 스크립트가 nice에서 10 씩 증가합니다. 나머지 프로세스와 스크립트의 실행 시간 사이에 멋진 (pun 의도하지 않은) 균형을 찾기 위해 비트를 테스트하고 싶을 것입니다.
참조 좋은 방법이 작동? 및 http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/ 자세한 내용은.
답변
프로세스의 수준을 변경해도 시스템로드 값에는 영향을 미치지 않습니다. 시스템로드 값은 실행 큐 의 평균 길이 이며 기본적으로 CPU를 사용하려는 프로세스 수입니다.
CPU 바운드 프로세스를 실행하는 경우 (rsync는 아니지만 예를 들어) 사용 가능한 프로세스가있을 때마다 항상 CPU 시간을 사용하려고합니다. 항상 실행되기를 원하므로로드 값 1.0을 시스템로드 값에 제공합니다. 실행 큐의 평균 길이는 실행 큐 의 프로세스 순서 에 영향을받지 않기 때문에 프로세스 수준이 중요하지 않습니다 .
답변
시스템로드 / CPU 시간에 대한 프로세스 영향을 줄이는 3 가지 방법을 고려할 수 있습니다.
nice
명령을 사용하여 작업 우선 순위를 수동으로 낮추십시오.cpulimit
특정 제한을 초과하지 않도록 프로세스를 반복적으로 일시 중지 하려면 명령을 사용하십시오 .built-in control groups
스케줄러에게 프로세스에 사용 가능한 자원의 양을 제한하도록 지시하는 메커니즘 인 Linux를 사용하십시오 .
자원