当我在 RHEL 5.7 机器上运行“sar -d”时,我得到了响应:
Requested activities not available in file
如何配置 sar 来收集磁盘信息?
答案1
sysstat
运行二进制文件的服务不会sa
收集/var/log/sa
文件中的磁盘统计信息。默认情况下,此功能已关闭,以防止日志在具有数百或数千个块设备的系统上变得过大。
当您运行sar
报告磁盘统计信息时,文件中没有请求的活动消息告诉您sa
尚未收集磁盘统计信息,因此sar
无法显示任何内容。
您可以添加配置参数,其SADC_OPTIONS
值为/etc/sysconfig/sysstat
此功能已添加到错误 598794所以您需要运行sysstat-7.0.2-11.el5
或更晚。
编辑/etc/sysconfig/sysstat
文件以包含如下行:
SADC_OPTIONS="-d"
然后service sysstat restart
给它一些时间来收集数据(至少 20 分钟),然后sar -d
就可以工作了。
答案2
阅读手册页,sadc
了解配置文件中各种选项的作用sysstat
。你应该看到类似这样的内容:
-S { INT | DISK | SNMP | IPV6 | POWER | XDISK | ALL | XALL }
Specify which optional activities should be collected by sadc.
CentOS 6 和 CentOS 7 中的默认值是-S DISK
,但例如我在负责网络监控的机器上将其替换为 -S SNMP。您可以像这样使用多个:-S DISK -S POWER -S INT
。
请注意,默认情况下,您可以使用 获得许多统计数据sadc
。-S 选项只会添加更多数据。
尝试以下方法来了解sadc
和sar
之间的关系:
# /usr/lib64/sa/sadc -S INT -S DISK 10 10 /tmp/test
(... wait 10 * 10 = 100 seconds ...)
# sar -f /tmp/test | head
Linux 3.10.0-123.20.1.el7.x86_64 (icinga02.foo) 11/02/15 _x86_64_ (4 CPU)
15:17:41 CPU %user %nice %system %iowait %steal %idle
15:17:51 all 13.94 0.00 2.48 0.03 0.00 83.55
15:18:01 all 14.71 0.00 2.46 0.00 0.00 82.83
15:18:11 all 17.72 0.00 1.88 0.00 0.00 80.40
15:18:21 all 11.47 0.00 1.30 0.00 0.00 87.22
15:18:31 all 18.43 0.00 1.98 0.00 0.00 79.59
请注意,您现在可以从该文件中提取许多其他统计数据,load
例如cpu
:
# sar -q -f /tmp/test | head
Linux 3.10.0-123.20.1.el7.x86_64 (icinga02.foo) 11/02/15 _x86_64_ (4 CPU)
14:20:01 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
14:30:01 0 239 0.64 0.54 0.50 0
14:40:01 0 240 1.10 1.01 0.74 0
14:50:01 0 242 0.98 0.97 0.84 0
15:00:01 0 243 1.14 0.94 0.88 0
15:10:01 0 242 0.63 0.74 0.82 0
15:20:01 1 244 0.60 0.57 0.68 0
Average: 0 242 0.85 0.80 0.74 0