우리는 비정상적으로 높은 부하와 CPU 유틸리티를 가진 서버를 가지고 있지만 그 이유를 알 수는 없습니다. 우리가 정상을 돌 때 모든 procs는 매우 낮은 CPU 인 것처럼 보입니다.
http://cl.ly/2d1g0K3q261r0R0K3e35
이 원인을 찾는 더 좋은 방법이 있습니까?
답변
이 버그 가 당신의 경우 라고 생각 합니다 . 출력에서 볼 수 있듯이 충분한 메모리 (캐시 된 14GB 정도), I / O 문제는 없지만 xen 관련 프로세스가 실행 중입니다. 이것은 내가 버그라고 생각하게합니다.
답변
로드는 시스템이 1, 5 및 15 분 단위로 수행 한 워크로드를 측정 한 것입니다.
가장 일반적인 오해는 Load Average가 시스템의 CPU 사용량과 순수하게 연결되어 있다는 것입니다.
그러나로드에는 CPU가 I / O를 기다리는 등의 추가 측정이 포함되어 있습니다.
이미지를 기반으로 메모리가 부족하고 데이터를 디스크로 스왑하기 시작한 것 같습니다.
간단한 free -m
것은 얼마나 많은 RAM과 스왑이 사용되는지 알려줍니다.
흥미로운 열은 옆에있는 빈 열 -/+ buffers/cache
입니다.
0에 가까우면 RAM이 부족하고 그에 따라 작동해야합니다.
답변
로드 평균이 상당히 높다는 것을 알 수 있습니다 (68, 와우). 약간의 CPU를 차지하는 많은 프로세스가있을 수 있으므로 모든 CPU 시간을 소비 할 수 있습니까? 어쩌면, 그 프로세스는 매우 빨리 시작하고 끝나기 때문에 top은 그 존재를 포착 할 수 없으므로 꼭대기에서 볼 수 있는지 볼 수 있습니다.
답변
시험
iotop
IO는 대부분의 시간이었습니다.
답변
다음을 사용하십시오.
top -o cpu
-o
플래그는 내림차순으로 CPU 사용에 의해 프로세스를 주문 상단 강제 할 것이다.
답변
nfs의 파일 또는 다른 프로세스가 액세스해야하는 파일을 잠그는 다른 파일 일 수 있습니다.
너무 많은 스레드를 활성화하여 구성된 서비스를 놓칠 수도 있습니다.
답변
CPU 사용량이 스레드에서 발생하는 것 같습니다. top
이것을 고려하지 않은 것 같습니다. 나는 최근에 이것을 mysql 서버에서 보았다. INSERT 문이 실행 중이지만 mysqld의 일부 스레드가 테이블 인덱스를 업데이트했기 때문에 SELECT로 새 행을 가져올 수 없습니다. top은 하나의 코어에 100 % 사용자로드를 표시하지만 mysqld를 포함한 모든 프로세스는 0.0 % CPU입니다. 몇 시간 후 동일한 SELECT가 예상 결과 세트를 제공했습니다.
또한보십시오