无论如何要获取 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
我需要给它添加等待,所以它看起来像这样。
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
您正在寻找的格式。不过,我用于此类监控的工具是可定制的,您可以在其中显示相关字段。它也非常适合为回放和绘图目的生成数据。我使用Collectl 监控(在 CentOS 中通过 yum 可用),磁盘检查标志应该给你你需要的东西:
示例输出(您可以更改打印的单位和列):
这似乎应该可以用 munin、石墨等进行监控。
编辑:如果您的系统有
watch
,您可以将 iostat 设置为自动运行给定的(或无限重复的)次数,并且运行之间有指定的间隔!awk
出你真正想要的领域!为什么不在 bash 中创建包装器?
单行版本看起来像:
这将运行 iostat 两次,并返回 await 的正确值(第 7 列)
您可以对 vmstat 执行相同的操作,方法是将右侧的列传递给 awk 以获得整个 CPU iowait。例如 :
请注意,iostat 和 vmstat 在每个 linux 发行版上都是不同的,您必须选择正确的列。
如果作者正在寻找实时信息,请重新阅读原始问题,我同意 collectl 是可行的方法。这就是我写它的原因。;)
如果您想对数据做一些具体的事情,也许我可以提供帮助,但我需要了解更多。至于你想要多实时,你可以选择你喜欢的任何亚秒级监控间隔。
-标记