iostat
iostat 的命令格式
iostat 用于输出CPU和磁盘I/O相关的统计信息。命令格式为:
iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]
其中:
-
interval : 为取样时间间隔
-
count : 为输出次数,若指定了取样时间间隔且省略此项,将不断产生统计信息
常用选项:
选项说明-c | 仅显示CPU统计信息。与-d选项互斥。 |
-d | 仅显示磁盘统计信息。与-c选项互斥。 |
-k | 以KB为单位显示每秒的磁盘请求数。默认单位块。 |
-m | 以MB为单位显示每秒的磁盘请求数。默认单位块。 |
-p {device|ALL} | 用于显示块设备及系统分区的统计信息。与-x选项互斥。 |
-t | 在输出数据时,打印搜集数据的时间。 |
-V | 打印版本号信息。 |
-x | 输出扩展信息。 |
iostat 使用举例
下面给出几个例子:
# 显示一条包括所有的CPU和设备吞吐率的统计信息 # iostat Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 avg-cpu: %user %nice %system %iowait %steal %idle 0.10 0.04 0.37 0.07 0.00 99.42 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.44 16.79 10.58 800430 504340 sdb 0.01 0.07 0.00 3314 8 sdc 0.86 8.56 0.00 407892 24 # 每隔5秒显示一次设备吞吐率的统计信息(单位为 块/s) # iostat -d 5 # 每隔5秒显示一次设备吞吐率的统计信息(单位为 KB/s),共输出3次 # iostat -dk 5 3 # 每隔2秒显示一次 sda 及上面所有分区的统计信息,共输出5次 # iostat -p sda 2 5 # 每隔2秒显示一次 sda 和 sdb 两个设备的扩展统计信息,共输出6次 # iostat -x sda sdb 2 6 Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 avg-cpu: %user %nice %system %iowait %steal %idle 0.10 0.04 0.37 0.07 0.00 99.42 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.17 0.84 0.96 0.47 16.67 10.56 19.01 0.01 7.11 1.25 0.18 sdb 0.00 0.00 0.01 0.00 0.07 0.00 5.16 0.00 0.22 0.19 0.00 …………
iostat 的输出项说明
avg-cpu 部分输出项说明:
%user | 在用户级别运行所使用的 CPU 的百分比。 |
%nice | nice 操作所使用的 CPU 的百分比。 |
%system | 在核心级别(kernel)运行所使用 CPU 的百分比。 |
%iowait | CPU 等待硬件 I/O 所占用 CPU 的百分比。 |
%steal | 当管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 |
%idle | CPU 空闲时间的百分比。 |
Device 部分基本输出项说明:
tps | 每秒钟物理设备的 I/O 传输总量。 |
Blk_read | 读入的数据总量,单位为块。 |
Blk_wrtn | 写入的数据总量,单位为块。 |
kB_read | 读入的数据总量,单位为KB。 |
kB_wrtn | 写入的数据总量,单位为KB。 |
MB_read | 读入的数据总量,单位为MB。 |
MB_wrtn | 写入的数据总量,单位为MB。 |
Blk_read/s | 每秒从驱动器读入的数据量,单位为 块/s。 |
Blk_wrtn/s | 每秒向驱动器写入的数据量,单位为 块/s。 |
kB_read/s | 每秒从驱动器读入的数据量,单位为KB/s。 |
kB_wrtn/s | 每秒向驱动器写入的数据量,单位为KB/s。 |
MB_read/s | 每秒从驱动器读入的数据量,单位为MB/s。 |
MB_wrtn/s | 每秒向驱动器写入的数据量,单位为MB/s。 |
Device 部分扩展输出项说明:
rrqm/s | 将读入请求合并后,每秒发送到设备的读入请求数。 |
wrqm/s | 将写入请求合并后,每秒发送到设备的写入请求数。 |
r/s | 每秒发送到设备的读入请求数。 |
w/s | 每秒发送到设备的写入请求数。 |
rsec/s | 每秒从设备读入的扇区数。 |
wsec/s | 每秒向设备写入的扇区数。 |
rkB/s | 每秒从设备读入的数据量,单位为 KB/s。 |
wkB/s | 每秒向设备写入的数据量,单位为 KB/s。 |
rMB/s | 每秒从设备读入的数据量,单位为 MB/s。 |
wMB/s | 每秒向设备写入的数据量,单位为 MB/s。 |
avgrq-sz | 发送到设备的请求的平均大小,单位为扇区。 |
avgqu-sz | 发送到设备的请求的平均队列长度。 |
await | I/O请求平均执行时间。包括发送请求和执行的时间。单位为毫秒。 |
svctm | 发送到设备的I/O请求的平均执行时间。单位为毫秒。 |
%util | 在I/O请求发送到设备期间,占用CPU时间的百分比。用于显示设备的带宽利用率。当这个值接近100%时,表示设备带宽已经占满。 |
mpstat
mpstat 的命令格式
mpstat 输出每一个 CPU 的运行状况,为多处理器系统中的 CPU 利用率提供统计信息。命令格式为:
mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]
其中:
-
interval : 为取样时间间隔。指定0则输出自系统启动后的一个统计信息。
-
count : 为输出次数。若指定了取样时间间隔且省略此项,将不断产生统计信息。
常用选项:
选项说明-P {cpu|ALL} | 指定 CPU。用 CPU-ID 指定,CPU-ID 是从0开始的,即第一个CPU为0。ALL 表示所有CPU。 |
-V | 输出版本号信息。 |
mpstat 使用举例
下面给出几个例子:
# 输出所有 CPU 使用情况的统计信息。 # mpstat Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 10:39:06 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:39:06 AM all 0.10 0.04 0.31 0.06 0.04 0.01 0.00 99.45 1012.99 # 输出第一个 CPU 使用情况的统计信息。 # mpstat -P 0 Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 10:41:03 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:41:03 AM 0 0.09 0.02 0.40 0.09 0.08 0.01 0.00 99.32 1012.79 # 每隔2秒输出所有CPU的统计信息,共输出5次。 # mpstat 2 5 # 每隔2秒输出一次所有CPU的统计信息,共输出5次。 # mpstat -P ALL 2 5 # 每隔2秒输出一次第二个CPU的统计信息,共输出5次。 # mpstat -P 1 2 5
mpstat 输出项说明
CPU | 在多CPU系统里,每个CPU有一个ID号,第一个CPU为0。all表示统计信息为所有CPU的平均值。 |
%user | 显示在用户级别运行所占用CPU总时间的百分比。 |
%nice | 显示在用户级别,用于nice操作,所占用CPU总时间的百分比。 |
%sys | 显示在kernel级别运行所占用CPU总时间的百分比。注意:这个值并不包括服务中断和softirq。 |
%iowait | 显示用于等待I/O操作时,占用CPU总时间的百分比。 |
%irq | 显示用于中断操作,占用CPU总时间的百分比。 |
%soft | 显示用于softirq操作,占用CPU总时间的百分比。 |
%steal | 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 |
%idle | 显示CPU在空闲状态,占用CPU总时间的百分比。 |
intr/s | 显示CPU每秒接收到的中断总数。 |