3.3 vmstat
vmstat命令也是显示Linux性能指标的方法,它报告了许多信息,理解这些信息有一定难度。
输出分为6个类别:进程、内存、交换区、I/O、系统和CPU。与iostat类似,第一个样本是从最近重新启动以来的平均值。以下是一个典型的vmstat输出:
-m选项使内存字段以兆字节为单位显示。 vmstat和许多其他性能命令一样使用取样间隔和计数参数。
进程(procs)信息有两列。r列是可运行进程的数量,b列是阻塞进程的数量。
内存部分有4个报告虚拟内存如何使用的字段。表 3-7列出这些字段及其意义。
表3-7 vmstat内存字段
字 段 |
说 明 |
Swpd |
已用的交换空间数量 |
free |
自由RAM数量 |
buff |
缓冲使用的RAM数量 |
cache |
文件系统缓存使用的RAM数量 |
接下来是交换(swap)指标。交换只是一个古老术语,但是显然不会消失。交换涉及分页读取或写入磁盘的进程所消耗的所有内存。它将显示系统达到的性能指标水平。而Linux所做的是,以小块方式按照需要对磁盘空间进行分页操作。因此,我们可能应该停止说交换到磁盘的内存,并开始说分页到磁盘的内存。对于任何一种方法,表3-8解释了相关字段。
表3-8 vmstat交换字段
字 段 |
说 明 |
si |
从磁盘分页到内存的数量 |
so |
从内存分页到磁盘的数量 |
在交换之后是两个I/O字段。这部分提供了一个简略介绍以帮助确定Linux是否正忙于完成许多磁盘I/O。vmstat只提供两个字段,显示出入磁盘的数据量(参见表3-9)。
表3-9 vmstat io字段
字 段 |
说 明 |
bi |
从磁盘读入的块 |
bo |
写入磁盘的块 |
系统字段提供Linux内核进行进程管理的繁忙程度的摘要。中断和上下文开关参见表3-10。上下文开关指进程移出CPU或者移入CPU。
表3-10 vmstat系统字段
字 段 |
说 明 |
in |
系统中断 |
cs |
进程上下文开关 |
最后,CPU状态信息用总CPU时间的百分比来表示,如表3-11所示。
表3-11 vmstat cpu字段
字 段 |
说 明 |
us |
用户模式 |
sy |
内核模式 |
wa |
等待I/O |
id |
空闲 |
3.4 iostat
iostat命令是另一个研究磁盘吞吐量的工具。和 sar类似,iostat可以使用间隔和计数参数。第一个间隔的输出包含Linux总运行时间的指标。与其他性能命令比较,这可能是iostat最独特的功能。例如,以下是一个大部分时间处于空闲的系统的输出。可见,从启动以来hda设备已经读取大约 9 158MB(18 755 572*512/1 024/1 024)。Blk列是512字节块。
不使用选项,iostat只显示覆盖启动以来全部时间的一组指标。
CPU信息包含基本上和top一样的字段。 iostat CPU输出显示在用户模式中执行、执行正常进程、在内核(系统)模式中执行,进程等待I/O完成时处于空闲和没有等待进程时处于空闲的CPU时间的百分比。CPU行是所有CPU的摘要。
磁盘信息与sar -d提供的信息类似。输出包括每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。
iostat提供几个用于定制输出的开关。最有用的有:
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
这些选项可以组合。iostat -tk 5 2的输出是:
3.5 free
free命令输出内存和交换信息,与top命令的作用非常相似。不使用选项,free以千字节为单位显示信息:
free命令有少量选项,推荐使用-mt。-m开关使输出以兆字节为单位,-t开关提供一个合计行:
3.6 小结
如本章所示,Linux中的可用性能工具所提供的信息有大量重复,例如内存信息可以通过top、vmstat、free和sar显示。系统管理员不需要精通所有这些工具,重要的是知道如何找到并解释需要的所有性能信息而不是使用哪些工具。因此,我们推荐读者多花一些时间来熟悉这些工具及其输出。
(责任编辑:ken)