《NetBSD指南-18.4.2.iostat》
发表于 : 2010-03-05 13:39
iostat(8) 命令的作用就和它的名字一样,它显示系统上的I/O子系统状态。
当运行iostat时, 用户一般在后面加上特定的一些数字(以空格分开),看起来像:
上面的是一台很轻松的ftp服务器的输出信息。 这些区域代表了各种I/O设备,
tty(这个有点捉弄人, 它总是十分活跃,因为iostat在运行), wd0是主IDE磁盘,
cd0是cdrom驱动器, 而fd0是软驱,还有内存文件系统。
现在, 我们用一些大应用试试系统抗压性能。 首先, 执行一个大型的ftp任务,
传送一个NetBSD当前源码的压缩包,同时不时地运行一下bonnie++磁盘检查程序。
不出所料, wd0十分活跃, 有趣的是看起来随着处理器I/O的增加wd0的活跃程度也成比例的上升。
这很容易让人理解, 但是, 值得提醒的是这里只因为ftp服务器非常繁忙才会这样. 例如,如果
cpu的I/O子系统已经处于比较闲置的状态而磁盘子系统也处于低负载的情况下, 这时看起来似乎
CPU是瓶颈而实际上却是磁盘。这种情况下, 我们可以看到"一个工具"不足以全面地分析问题。
快速地浏览一下iostat,我们就能知道哪些进程是问题所在。
当运行iostat时, 用户一般在后面加上特定的一些数字(以空格分开),看起来像:
代码: 全选
$ iostat 5 5
tty wd0 cd0 fd0 md0 cpu
tin tout KB/t t/s MB/s KB/t t/s MB/s KB/t t/s MB/s KB/t t/s MB/s us ni sy in id
0 1 5.13 1 0.00 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
0 54 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
0 18 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
0 18 8.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
0 28 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
tty(这个有点捉弄人, 它总是十分活跃,因为iostat在运行), wd0是主IDE磁盘,
cd0是cdrom驱动器, 而fd0是软驱,还有内存文件系统。
现在, 我们用一些大应用试试系统抗压性能。 首先, 执行一个大型的ftp任务,
传送一个NetBSD当前源码的压缩包,同时不时地运行一下bonnie++磁盘检查程序。
代码: 全选
$ iostat 5 5
tty wd0 cd0 fd0 md0 cpu
tin tout KB/t t/s MB/s KB/t t/s MB/s KB/t t/s MB/s KB/t t/s MB/s us ni sy in id
0 1 5.68 1 0.00 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
0 54 61.03 150 8.92 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 1 0 18 4 78
0 26 63.14 157 9.71 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 1 0 20 4 75
0 20 43.58 26 1.12 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 9 2 88
0 28 19.49 82 1.55 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 1 0 7 3 89
这很容易让人理解, 但是, 值得提醒的是这里只因为ftp服务器非常繁忙才会这样. 例如,如果
cpu的I/O子系统已经处于比较闲置的状态而磁盘子系统也处于低负载的情况下, 这时看起来似乎
CPU是瓶颈而实际上却是磁盘。这种情况下, 我们可以看到"一个工具"不足以全面地分析问题。
快速地浏览一下iostat,我们就能知道哪些进程是问题所在。