Unix 'top'명령에서 CPU 값과 혼동 됨


11

아래 스크린 샷에서 전체 CPU는 3 % 로보 고되지만 mysqld 프로세스는 57 %를 사용하는 것으로보고됩니다. 전체 3 % 중 57 %이므로 mysqld는 CPU의 약 1.5 % 만 사용합니까?

상단 스크린 샷 http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

업데이트 : 아래의 주석자가 '1'키를 누르고 결과를 게시하도록 요청 했습니다 .1 키 http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

답변:


11

57.6 %는 mysqld가 1 개의 CPU 중 .576을 사용하고 있음을 의미합니다. 불일치는 시스템 전체의 데이터 수집과 프로세스 별 데이터 수집 간의 경쟁 조건 일 수 있습니다.

편집 : 업데이트에 따라 16 개의 코어가있는 것처럼 보입니다.

57.5% => .575/16 = .036 = 3.6%.

그래서 3 %가 시작됩니다.

모든 유휴 비율을 합산하고 1600 %에서 빼면 약 57.5 %로 나타납니다.


3

상단이 실행 중일 때 숫자 1을 눌러보고 어떻게되는지 확인할 수 있습니다.

편집하다:

알 수 없음 씨가 잘 말합니다.

top은 "하나의 CPU 코어가 있다면 57.5 % 사용 중"이라고 말합니다.

그러나 16 개의 코어가 있습니다. 따라서이 57 숫자는 모든 곳에서 퍼져 있으며 mysqld는 멀티 스레드이며 모든 것이 있습니다 ...

혼란스러운 종류. 그러나 top은 각 코어에 대한 정보를 표시하기가 더 어렵다고 생각하기 때문에 16 개 이상의 코어가있는 정보 라인을 상상해보십시오!

또한 "% us"CPU 시간을 모두 합하면

1.7+1.0+2.3+1.0+7.4+11.1+15.1+8.7 = 48.3
48.3/16 = 3.01875

이것은 3 % 숫자의 출처입니다 ...


끝난; 업데이트 된 질문을 참조하십시오.
Teflon Ted

1

누구 추천 htop했습니까? 이전 답변보다 이미이 특정 질문에 도움이되는 것은 아니지만 htop누군가가 여전히 사용하고있는 것을 볼 때마다 언급 할 의무 가 있습니다 top!


0

나는 당신의 탑이 당신이 가지고있는 여러 CPU를 병합하는지 알 수 없지만 여전히 큰 의미는 없습니다.

일어날 수있는 일은 top이 모든 프로세스의 값과 총 CPU 사용량을 동시에 얻지 못한다는 것입니다. 프로세스 정보를 읽는 시간과 전역을 읽는 시간 사이에 많은 CPU를 사용하여 mysql이 중지되거나 시작된 시간이 얼마 남지 않았습니다. 단순한 경쟁 조건 일 수 있습니다.

물론, 이것은 당신이 알아 차릴 수있을만큼 오랫동안 일어 났어 야했을 것입니다. 그래서 이것은 아마도 어쩌면 상단이나 커널 회계의 어딘가에 이상한 버그 일 수 있다고 생각합니다.


0

us : userspace-커널 위에서 실행중인 시스템 sy : 시스템 호출-커널 내부에서 실행중인 항목 ni : reniced processes id : idle wa : i / o 대기 hi : 하드웨어 인터럽트-하드웨어 처리에 소요되는 시간 si : 소프트웨어 인터럽트-소프트웨어 생성 인터럽트 (시스템 호출 등)를 처리하는 데 소요되는 시간

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.