2012-08-15 3 views
2

top 또는 mpstat과 같은 명령에서 CPU 사용률을 더하고 특히 collectd 서비스를 추가 할 때마다 정확히 100 % CPU 사용률을 얻을 수 없습니다.Linux CPU 비율이 최대 100 %가되지 않음

예를 아마존 EC2에 테스트 서버에서 top 결과 :

Cpu(s): 13.6%us, 31.6%sy, 0.0%ni, 53.2%id, 0.0%wa, 0.0%hi, 0.0%si, 1.7%st 

은 아무리 비율을 추가하는 방법, 꽤 논리적 방법으로하지 확실히 100 %의 CPU를 얻을 수 없다. 대부분 반올림 오류처럼 보입니다. 100.1 % 또는 99.9 %이지만 때로는 110 % 이상으로 끝납니다. 이는 보통 steal이 상대적으로 높은 경우에 발생합니다. collectd에서 한 가지 상황은 ~ 21.44 %가 도용되고 ~ 88 %가 유휴 상태라고보고했습니다.이 두 가지 상황은 이미 100 %가 넘습니다. 나는 ni (nice)도 us (사용자)로 계산되므로 추가하지 말아야하지만 아직 해결되지는 않습니다.

아무에게도 최대 100 %를 추가하는 방법이나 collectd 가끔보고하는 예외적 인 경우를 해석하는 방법을 알고 있습니까?

+0

'top'은 CPU 사용량의 관점에서 CPU 사용량을 정확하게보고하지 않습니다. 이는 모든 프로세스를 실행하는 데 단일 CPU가 얼마나 필요한지 나타냅니다. 당신은 100 % 이상을 가질 수 있습니다. 여기에 스레드를 참조하십시오 : http://superuser.com/questions/174660/why-is-the-cpu-usage-reported-by-top-in-linux-over-100 및 http://serverfault.com/questions/ 127059/using-top-four-processes-have-100-cpu-how – birryree

+0

@birryree 귀하는 당연한 것입니다. 두 개의 코어가 있다면'top '의 총 CPU %는 200 %가 될 수 있습니다. VPS에 대해 언급하는 것을 잊어 버렸습니다. 그러나'collectd'에서는 통계가 개별 코어마다 분리됩니다. – Martijn

답변

4

collectd (및 top, htop는, vmstat 또는 임의의 다른 유틸리티) 간격 동안의 평균을보고하고 커널의 특성 (있는 이러한 유틸리티가 통계를 조회) 일반적으로 부동 소수점 연산을하지 사용하지 않음으로써 반드시 시도 모든 것을 철저히 설명하기 위해 100 % 정확할 수는 없습니다. 때로는 모두 100 % 미만의 항목에 가중되는 경우가 있습니다. 감사를 위해 사용되는 것은 아니며 시간이 소비되는 곳을 나타내는 일반적인 표시입니다.

1

나는 이것이 collectd와는 아무 관련이 없지만 커널 사용 통계와 관련이 있음을 확인합니다. 이 부정확성은 틱리스 시스템 및/또는 스로틀 링 상태에서 특히 중요합니다.

관련 문제