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
我正在运行 sar 11.6.1,它是通过 apt 安装的,并且我没有配置任何 cron 数据收集(如果这很重要),尽管我确实启用了 sysstat 服务:
$ 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
真正含义是:“以每秒一个的采样率捕获所有选项,并将它们记录在给定文件中。还,以相同的速率将内存统计信息输出到终端”。
由于所有统计数据都记录在输出文件中,因此可以使用与实时数据相同的选项进行查询。正如我所料,该命令sar -r -f /tmp/memory_usage
输出从文件收集的内存使用情况。