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
파일에서 수집된 메모리 사용량을 출력합니다.