프로세스에 더 좋은 수준을 설정하면 시스템로드 / CPU 시간에 미치는 영향을 줄이는 효과적인 방법입니까?


10

서버로드를 추진하고 모니터 경고를 트리거하는 rsync cron 작업이 있습니다. 높은 수준으로 작업을 실행하도록 설정하면 시스템로드 값에 미치는 영향을 효과적으로 줄일 수 있습니까?


rsync의 경우 스위치를 사용하여 압축을 줄이거 나 대역폭 사용을 제한하는 것이 더 효과적입니다.
니모

답변:


9

부하를 줄이지 않습니다.

가능한 리소스 경합이있는 경우 다른 프로세스가 CPU 시간을 더 자주 사용할 수 있습니다 (사용 가능한 CPU 시간이 충분하지 않은 경우 여러 프로세스 "경쟁").


9

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/ 자세한 내용은.


5

프로세스의 수준을 변경해도 시스템로드 값에는 영향을 미치지 않습니다. 시스템로드 값은 실행 큐평균 길이 이며 기본적으로 CPU를 사용하려는 프로세스 수입니다.

CPU 바운드 프로세스를 실행하는 경우 (rsync는 아니지만 예를 들어) 사용 가능한 프로세스가있을 때마다 항상 CPU 시간을 사용하려고합니다. 항상 실행되기를 원하므로로드 값 1.0을 시스템로드 값에 제공합니다. 실행 큐의 평균 길이는 실행 큐 의 프로세스 순서 에 영향을받지 않기 때문에 프로세스 수준이 중요하지 않습니다 .


이것은 기억해야합니다. 멋진 프로세스를 많이 실행하면 실제로 실제 작업 속도가 느려지지 않더라도 시스템로드가 매우 높아 보입니다 . 어떤 경우에는로드가 실제 문제를 드러냅니다. 즉, Linux가 niced 프로세스가 문제없이 실제로 사용할 수있는 모든 자원을 사용할 수 없게한다는 것입니다.
Nemo

3

시스템로드 / CPU 시간에 대한 프로세스 영향을 줄이는 3 가지 방법을 고려할 수 있습니다.

  • nice명령을 사용하여 작업 우선 순위를 수동으로 낮추십시오.
  • cpulimit특정 제한을 초과하지 않도록 프로세스를 반복적으로 일시 중지 하려면 명령을 사용하십시오 .
  • built-in control groups스케줄러에게 프로세스에 사용 가능한 자원의 양을 제한하도록 지시하는 메커니즘 인 Linux를 사용하십시오 .

자원

http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups


cgroup을 사용하여 시스템 리소스의 균형을 유지하려고합니다. 따라서 원하는대로 리소스를 분할 할 수 있고 (CPU, 메모리, 디스크 IO, 디스크 대역폭)로드가 적은 상황에서도 "낮은 우선 순위"프로세스조차도 항상 낮은 우선 순위 프로세스 속도를 늦추는 사용자 모드 트릭과 달리 최대 성능을 얻습니다.
Mikko Rantalainen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.