使用 vmstat 命令评估磁盘性能
为了证实系统是 I/O 绑定,您最好使用 iostat 命令。
但是, vmstat 命令可以通过查看 wa 列来指向该方向,如 vmstat 命令中所述。 其他关于 I/O 绑定的指示符是:
- 该disk xfervmstat 输出的一部分为了显示有关逻辑磁盘的统计信息(最大允许 4 个磁盘),请使用下列命令:
# vmstat hdisk0 hdisk1 1 8 kthr memory page faults cpu disk xfer ---- ---------- ----------------------- ------------ ----------- ------ r b avm fre re pi po fr sr cy in sy cs us sy id wa 1 2 3 4 0 0 3456 27743 0 0 0 0 0 0 131 149 28 0 1 99 0 0 0 0 0 3456 27743 0 0 0 0 0 0 131 77 30 0 1 99 0 0 0 1 0 3498 27152 0 0 0 0 0 0 153 1088 35 1 10 87 2 0 11 0 1 3499 26543 0 0 0 0 0 0 199 1530 38 1 19 0 80 0 59 0 1 3499 25406 0 0 0 0 0 0 187 2472 38 2 26 0 72 0 53 0 0 3456 24329 0 0 0 0 0 0 178 1301 37 2 12 20 66 0 42 0 0 3456 24329 0 0 0 0 0 0 124 58 19 0 0 99 0 0 0 0 0 3456 24329 0 0 0 0 0 0 123 58 23 0 0 99 0 0 0这个磁盘 xfer 部分提供了发生在样本时间间隔内每秒向特定的物理卷传送的次数。 您可以指定一至四个物理卷的名称。 每个指定驱动器的传送统计信息按指定顺序给出。 该计数代表向物理设备的请求数。 它并不暗示读取或写入的数据量。 几个逻辑请求可以组合成为一个物理请求。
- vmstat 输出的 在 列
这列显示了在评估间隔中(每秒)发生的硬件或设备中断的次数。 中断的示例为磁盘请求完成和 10 毫秒的时钟中断。 既然后者每秒发生 100 次,那么 in 这个字段就总是大于 100。 但是 vmstat 命令同样提供了详细的有关系统中断的信息。
- vmstat -i 输出这个 -i 参数显示了自系统启动以来被每个设备中断的次数。 但是如果增加间隔(可选)和计数参数,自启动以来的统计信息只是在第一节中显示;每个后缀节是有关被扫描间隔的统计信息。
# vmstat -i 1 2 priority level type count module(handler) 0 0 hardware 0 i_misc_pwr(a868c) 0 1 hardware 0 i_scu(a8680) 0 2 hardware 0 i_epow(954e0) 0 2 hardware 0 /etc/drivers/ascsiddpin(189acd4) 1 2 hardware 194 /etc/drivers/rsdd(1941354) 3 10 hardware 10589024 /etc/drivers/mpsdd(1977a88) 3 14 hardware 101947 /etc/drivers/ascsiddpin(189ab8c) 5 62 hardware 61336129 clock(952c4) 10 63 hardware 13769 i_softoff(9527c) priority level type count module(handler) 0 0 hardware 0 i_misc_pwr(a868c) 0 1 hardware 0 i_scu(a8680) 0 2 hardware 0 i_epow(954e0) 0 2 hardware 0 /etc/drivers/ascsiddpin(189acd4) 1 2 hardware 0 /etc/drivers/rsdd(1941354) 3 10 hardware 25 /etc/drivers/mpsdd(1977a88) 3 14 hardware 0 /etc/drivers/ascsiddpin(189ab8c) 5 62 hardware 105 clock(952c4) 10 63 hardware 0 i_softoff(9527c)注: 输出将因系统而异,具体取决于硬件和软件配置 (例如,时钟中断可能不会显示在 vmstat -i 输出中,尽管它们将在正常 vmstat 输出中的 in 列下说明)。 检查 count 列中数量大的条目,调查这些模块产生如此之多的中断的原因。