Bash에서 지난 10초 동안의 평균 CPU 사용량을 얻는 방법은 무엇입니까?

Bash에서 지난 10초 동안의 평균 CPU 사용량을 얻는 방법은 무엇입니까?

echoUbuntu 18에서 지난 10초 동안의 평균 CPU 사용량을 표시하는 명령이 필요합니다 .

다음 조건을 각각 충족해야 합니다.

  1. 가볍고 공간을 거의 차지하지 않아야 하며 파일 시스템에 지속적으로 쓰는 백그라운드 스크립트를 실행하는 것은 선택 사항이 아닙니다.
  2. 값은 코어 수를 자동으로 고려해야 합니다(이전에는 코어 수를 몰랐습니다).
  3. 값은 0에서 1 사이의 숫자여야 합니다. 사람이 아닌 스크립트로 읽을 수 있으므로 다른 출력은 없어야 합니다. 또는 제안된 명령의 출력을 구문 분석하는 강력한 알고리즘을 제안하십시오.
  4. sudo요청은 좋지만 스크립트가~ 해야 하다SSH를 통해 명령으로 실행하려면 올바른 프로세스 반환 동작( 0성공 시 종료 코드)이 있어야 합니다.

내장된 명령과 도구가 선호되지만 공식 저장소에서 사용할 수 있는 추가 기능 소프트웨어도 작동합니다.

답변1

sysstat패키지는 sar시스템 활동 데이터 수집기를 제공합니다.

sar -u ALL 10 1

우편평균CPU 통계다음시작 명령 이후 10초. 출력은 다음과 같습니다

Linux 5(...)    11/05/21        _x86_64_        (1 CPU)

17:22:35        CPU     %user     %nice   %system   %iowait    %steal     %idle
17:22:36        all      8.85     20.75      2.46      0.00      0.00     67.94
Average:        all      8.85     20.75      2.46      0.00      0.00     67.94

관련 정보