top -bn1은 올바른 CPU 사용량을 제공하지 않습니다.

top -bn1은 올바른 CPU 사용량을 제공하지 않습니다.

CPU 사용량이 거의 100%인 것으로 알고 있는 노드에 로그인하고 있습니다(각각 거의 100% CPU를 사용하는 20개의 단일 프로세스 작업). 대화식으로 사용했을 때 top첫 번째 반복에서는 약 20%의 사용량을 얻었고 ni, 다음 반복과 올바르게 사용한 후의 모든 반복에서는 95% 이상의 ni사용량을 얻었습니다. topvia 의 출력을 파이프하고 싶지만 top -bn1 > outfile첫 번째 반복 top -bn1(유일한 반복)에서 CPU 사용량이 잘못되었습니다. 사용하면 top -bn2두 번째 반복에서는 올바른 사용법을 제공하지만 출력이 너무 많습니다.

top -bn1CPU 사용량을 올바르게 제공하려면 어떻게 해야 합니까 ? 나는 사용 통계를 위해 이 스크립트를 작성하고 있으므로 필요한 경우 돌아가서 독립적으로 프로세스를 프로파일링하여 자체 CPU 사용량을 생성할 수 있지만, top즉시 올바른 사용법을 제공할 수 있다면 좋을 것입니다.

편집: mpdstat -P ALL나에게 동일하고 잘못된 초기 사용 통계를 제공했습니다. 그것을 알아내는 것도 좋을 것입니다. 을 사용할 수 있지만 mpstat -P ALL 1 1이렇게 하면 출력이 두 번 생성됩니다.

답변1

첫 번째 반복의 출력을 삭제하면 됩니다.

top -bn2 | awk '/^top -/ { p=!p } { if (!p) print }'

답변2

일부 도구는 계산된 평균을 먼저 표시합니다. 다른 도구의 첫 번째 샘플은 불완전합니다. 전반적으로 원하는 결과를 얻으려면 첫 번째 샘플을 건너뛰는 것이 좋습니다.

관련 정보