CPU 사용량이 많지 않은 프로세스에서로드가 많은 프로세스를 어떻게 알 수 있습니까?


12

때때로 내 서버는 "최상위"프로그램에서로드 평균이 높을 수 있지만 (예 : 4 코어 시스템에서로드는 ~ 10 임) 실제 CPU 사용량은 특히 높지 않습니다.

문제는 많은 I / O 집약적 작업이 실행되고 있다고 가정합니다. 맨 위의 "% CPU"값이 그다지 높지 않은 경우로드를 유발하는 이러한 작업을 식별하는 쉬운 방법이 있습니까?


top명령 을 실행할 때 표시되는 요약 영역을 붙여 넣을 수 있습니까?
mfriedman

답변:


7

iostat그런 통계를보고 할 수 있습니다. 일반적으로 배포판의 sysstat 패키지에 포함됩니다.

dstat 도 살펴볼 가치가있을 수 있습니다. 그것은 현대적인 대체품입니다.


일 때문에가 iostat될 줄 대답.
Ernie

4

당신이있는 경우 IO는 회계 커널에, 당신은 사용할 수있는 iotop그런 정보를 제공 할 수 있습니다. 또한 수집 된 것과 같은 모니터링 도구는 데이터를 기록하고보고 할 수 있습니다.


4

고부하의 원인을 찾기 위해 몇 가지 사항을 확인할 수 있습니다.

  • vmstat -w ovierwiem (프로세스, 스왑, mem, CPU, io, 시스템)을 보여줍니다
  • pmstat -P ALL CPU 코어 당 통계 (% iowait 포함)를 제공합니다.
  • iostat -x 높은 % util 또는 오래 기다림 또는 큰 평균 큐 크기를 찾으십시오.
    • 더 깊이 파다 iotop
  • ps -ax 무정전 절전 상태 인 상태 D (일반적으로 IO)를 찾고, 여전히 D 상태인지 확인하십시오.
    • strace로 더 깊이 파다
    • lsof 및 netstat를 사용하여 해당 프로세스의 파일 및 연결 확인
  • sar / sysstat-이 도구를 사용하면 "현재"통계뿐만 아니라 자정에 무슨 일이 있었는지 확인할 수 있습니다.
    • sar -b -전반적인 io 활동
    • sar -d -개별 블록 장치 IO 활동
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.