4.8 KiB
Linux 下报告CPU和I/O报告命令iostat
一个通用处理单元挥着CPU是一台电脑的大脑。所有的处理命令运行在上面。输入/输出或者I/O同样扮演了一个重要的角色。硬盘被用于提供数据给处理器并保存已被CPU处理的数据。一种恒来那个处理器和I/O利用率的方法是使用iostat命令。从它们的利用率,我们可以决定是否该增加更多资源。
iostat 是什么
iostat是一个通过观察设备的活跃时间和他们平均传输率之间的管理来监视系统输入/输出设备负载的命令。iostat可以生成一个用于改变系统系统从而更好在输入/输出和物理硬盘间取得平衡的报告。
安装 iostat
iostat包含在sysstat包内。如果你没有,你首先需要安装它。
在 RedHat / CentOS / Fedora
# yum install sysstat
在 Debian / Ubuntu / Linux Mint
$ sudo apt-get install sysstat
如何运行 iostat
要运行它,只需在控制台下输入iostat。下面是一个例子。
$ iostat
下面是如何读取iostat默认报告
第一部分包含了CPU报告
- %user : 显示了在执行用户(应用)层时的CPU利用率
- %nice : 显示了在执行以nice后的优先级运行用户层的CPU利用率
- %system : 显示了在执行系统(内核)层时的CPU利用率
- %iowait : 显示了CPU在有未完成的I/O请求时空闲时间的百分比
- %steal : 显示了当hypervisor正服务于另外一个虚拟处理器时无意识地等待虚拟CPU所占有的时间百分比。
- %idle : 请求时空闲时间的百分比
第二部分包含了设备利用率报告
- Device : 设备/分区名字列在 /dev 目录
- tps : 显示每秒传输给设备的数量。更高的tps意味着处理器更忙。
- Blk_read/s : 显示了每秒从设备上读取的块的数量(KB,MB)
- Blk_wrtn/s : 显示了每秒写入设备上块的数量(KB,MB)
- Blk_read : 显示所有已读取的块
- Blk_wrtn : 显示所有已写入的块
以KB或MB捕捉iostat
默认上,iostat以B为单位衡量I/O系统。为了更便于阅读,我们可以iostat将报告转换成以KB或者MB为单位。只需要加入**-k参数来创建以KB为单位**,-m参数来创建以MB为单位。
$ iostat -k
$ iostat -m
要扩展报告,我们可以在iostat后面跟上**-x选项**。
$ iostat -x
带延迟使用iostat
和vmstat一样,作为一个统计工具,最好带延迟参数来使用它。带了它,我们可以看到趋势。这里有一些带延时运行iostat的示例。
以KB为单位,2秒间隔,运行3次的方式运行iostat
$ iostat -k 2 3
只显示CPU报告,并以3秒为间隔,报告6次
$ iostat -c 3 6
Show hda2 and hda6 device only report with 2 seconds interval and 4 times reports
$ iostat -d hda2 hda6 2 4
文件
iostat使用这些文件来创建报告。
/proc/stat 包含了系统统计 /proc/partitions 包含磁盘统计 (对于2.5以前的已打过补丁的内核) /proc/diskstats 包含磁盘统计 (对于2.5以后的内核) /sys 包含块设备统计 (2.5以后内核)
总结
vmstat用于监视内存使用,iostat用于监视CPU使用率和I/O系统,这样我们就有了完整的工具来监视你机器中三个重要的组件。这些工具的一个好处是你无需使用特权运行它们。你可以浏览iostat的手册来深入了解。只需在控制台下输入man iostat就可进入iostat手册界面。
via: http://linoxide.com/linux-command/linux-iostat-command/