有没有办法得到iostat -m的输出,并实时添加扩展输出的等待列? 我知道这个问题听起来不错,但我需要能够实时得到所有这些列而不输出到文件或运行iostat两次,因为这会产生误导性的结果。 这是centos 6.2 iostat 9.0.4。 内核2.6.36.4。 所以总结我需要这个。
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn sda 0.56 0.00 0.00 324 485
我需要添加await,所以它看起来像这样。
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn await sda 0.56 0.00 0.00 324 485 10.72
我在做梦吗? 我是在看这个错误的方式? 我是否需要编译自己的iostat?
提前致谢。
我不知道如何获得您正在寻找的iostat格式。 但是,我用于此类监控的工具可定制到可以显示相关字段的位置。 生成重放和graphics用途的数据也非常好。
我使用Collectl监控 (通过yum在CentOS中提供), 磁盘检查标志应该给你你所需要的:
collectl -sD --dskfilt sda
示例输出(您可以更改打印的单位和列):
collectl -sD --dskfilt sdb waiting for 1 second sample... # DISK STATISTICS (/sec) # <---------reads---------><---------writes---------><--------averages--------> Pct #Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util sdb 0 0 0 0 336 0 52 6 6 0 0 0 1 sdb 16 0 1 16 389 1 52 7 7 0 0 0 3 sdb 0 0 0 0 1236 9 109 11 11 0 0 0 0 sdb 16 0 1 16 676 3 140 5 4 0 1 1 14 sdb 0 0 0 0 64 1 16 4 4 0 2 1 2
为什么不在bash中创build一个包装?
单线版本将如下所示:
iostat 1 2 | grep -w sda | tail -1 | awk {'print $7'}
这将运行iostat两次,并返回正确的值await(这是第7列)
您可以通过将右列传递给awk来获得整个CPU iowait来完成vmstat。 例如 :
vmstat 1 2 | tail -1 | awk {'print $16'}
请注意,iostat和vmstat在每个Linux发行版上都不同,您必须select正确的列。
这似乎是应该与munin,石墨等monitorable。
编辑 :如果你的系统有watch ,你可以设置iostat自动运行给定的(或无限次重复)次数,与运行之间的指定的差距! awk你真正想要的领域!
如果作者正在寻找实时信息,重新阅读原始问题,我同意collectl是要走的路。 这就是我写这个的原因。 ;)
如果有一些特定的事情要处理,或许我可以帮忙,但是我需要知道更多。 至于你想如何实时,你可以select任何你喜欢的亚秒监视间隔。
-标记