sysstat sar는 CPU 사용량만 수집합니다.

sysstat sar는 CPU 사용량만 수집합니다.

sar를 사용하여 실시간 시스템 통계를 수집하는 데 문제가 있습니다. 아래와 같이 sar 명령을 실행하면 올바른 출력이 표시됩니다.

$ sar -r 1 -o /tmp/memory_usage
Linux 4.15.0-70-generic ()  29/12/20    _x86_64_    (60 CPU)

18:26:55    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
18:26:56     30855140  78554416  51599624     62.58    321400  48906356   3491612      4.18  25558204  23859156        36
18:26:57     30855124  78554456  51599640     62.58    321400  48906392   3491612      4.18  25558204  23859212        72
18:26:58     30855204  78554536  51599560     62.58    321400  48906424   3491612      4.18  25558204  23859212       104
18:26:59     30855188  78554576  51599576     62.58    321400  48906456   3491612      4.18  25558204  23859268       136
18:27:00     30855204  78554648  51599560     62.58    321400  48906492   3491612      4.18  25558204  23859324       172
18:27:01     30855048  78554492  51599716     62.58    321400  48906524   3491612      4.18  25558228  23859324         0
^C
Average:     30855151  78554521  51599613     62.58    321400  48906441   3491612      4.18  25558208  23859249        87

그런데 출력 파일을 로드하면 CPU 사용량만 기록되는 것 같나요?

$ sar -f /tmp/memory_usage
Linux 4.15.0-70-generic ()  29/12/20    _x86_64_    (60 CPU)

18:26:55        CPU     %user     %nice   %system   %iowait    %steal     %idle
18:26:56        all      0.00      0.00      0.02      0.00      0.02     99.97
18:26:57        all      0.00      0.00      0.02      0.00      0.02     99.97
18:26:58        all      0.00      0.00      0.02      0.00      0.02     99.97
18:26:59        all      0.00      0.00      0.02      0.00      0.02     99.97
18:27:00        all      0.00      0.00      0.00      0.00      0.00    100.00
18:27:01        all      0.02      0.00      0.02      0.00      0.02     99.95
Average:        all      0.00      0.00      0.01      0.00      0.01     99.97

내 시스템 정보는 다음과 같습니다.

$ uname -a
Linux 4.15.0-70-generic #79-Ubuntu SMP Tue Nov 12 10:36:11 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

저는 apt를 통해 설치된 sar 11.6.1을 실행하고 있으며 sysstat 서비스를 활성화했지만 cron 데이터 수집을 구성하지 않았습니다(중요한 경우).

$ systemctl status sysstat
● sysstat.service - Resets System Activity Data Collector
   Loaded: loaded (/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled)
   Active: active (exited) since Tue 2020-12-29 16:56:29 GMT; 1h 34min ago
     Docs: man:sa1(8)
           man:sadc(8)
           man:sar(1)
  Process: 52376 ExecStart=/usr/lib/sysstat/debian-sa1 --boot (code=exited, status=0/SUCCESS)
 Main PID: 52376 (code=exited, status=0/SUCCESS)

Dec 29 16:56:29  systemd[1]: Starting Resets System Activity Data Collector...
Dec 29 16:56:29  systemd[1]: Started Resets System Activity Data Collector.

내가 뭘 잘못하고 있는지 아시나요? 메모리 사용량이 파일에 기록되지 않는 이유는 무엇입니까? 내가 잘못 구성했거나 달성이 불가능합니까 sar? 모든 도움을 주시면 대단히 감사하겠습니다.

답변1

나는 바보이고 답을 찾았습니다. 분명히 sar시스템 통계를 출력 파일로 수집하라고 말할 때모든 것전달하는 옵션뿐만 아니라 그것에 들어가십시오.

따라서 명령의 sar -r 1 -o /tmp/memory_usage실제 의미는 다음과 같습니다. "초당 1개의 샘플 속도로 모든 옵션을 캡처하고 지정된 파일에 기록합니다.반품, 동일한 속도로 메모리 통계를 터미널에 출력합니다."

모든 통계는 출력 파일에 기록되므로 실시간 데이터와 동일한 옵션을 사용하여 쿼리할 수 있습니다. 예상한 대로 이 명령은 sar -r -f /tmp/memory_usage파일에서 수집된 메모리 사용량을 출력합니다.

관련 정보