...
iostat 用于输出CPU和磁盘I/O相关的统计信息。命令格式为:
iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ]
[ -p [ device | ALL ] ] [ interval [ count ] ]
其中:
常用选项:
选项
说明
-c |
仅显示CPU统计信息。与-d选项互斥。 |
-d |
仅显示磁盘统计信息。与-c选项互斥。 |
-k |
以KB为单位显示每秒的磁盘请求数。默认单位块。 |
-m |
以MB为单位显示每秒的磁盘请求数。默认单位块。 |
-p {device|ALL} |
用于显示块设备及系统分区的统计信息。与-x选项互斥。 |
-t |
在输出数据时,打印搜集数据的时间。 |
-V |
打印版本号信息。 |
-x |
输出扩展信息。 |
下面给出几个例子:
# 显示一条包括所有的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
…………
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 输出每一个 CPU 的运行状况,为多处理器系统中的 CPU 利用率提供统计信息。命令格式为:
mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]
其中:
常用选项:
选项
说明
-P {cpu|ALL} |
指定 CPU。用 CPU-ID 指定,CPU-ID 是从0开始的,即第一个CPU为0。ALL 表示所有CPU。 |
-V |
输出版本号信息。 |
下面给出几个例子:
# 输出所有 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
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每秒接收到的中断总数。 |