建站优化

当前位置:

容易被误读的iostat,容易被误读的中国历史人物

浏览量:75次

容易被误读的iostat,容易被误读的中国历史人物

iostat主要用于报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息,下面小编就为大家具体的讲解Linux系统中容易被误读的IOSTAT。

iostat(1)是在Linux系统上查看I/O性能最基本的工具,然而对于那些熟悉其它UNIX系统的人来说它是很容易被误读的。比如在HP-UX上 avserv(相当于Linux上的 svctm)是最重要的I/O指标,反映了硬盘设备的性能,它是指I/O请求从SCSI层发出、到I/O完成之后返回SCSI层所消耗的时间,不包括在SCSI队列中的等待时间,所以avserv体现了硬盘设备处理I/O的速度,又被称为disk service time,如果avserv很大,那么肯定是硬件出问题了。然而Linux上svctm的含义截然不同,事实上在iostat(1)和sar(1)的man page上都说了不要相信svctm,该指标将被废弃:

“Warning! Do nottrust this field any more. This field will be removed ina future sysstat version.”

在Linux上,每个I/O的平均耗时是用await表示的,但它不能反映硬盘设备的性能,因为await不仅包括硬盘设备处理I/O的时间,还包括了在队列中等待的时间。I/O请求在队列中的时候尚未发送给硬盘设备,即队列中的等待时间不是硬盘设备消耗的,所以说await体现不了硬盘设备的速度,内核的问题比如I/O调度器什么的也有可能导致await变大。那么有没有哪个指标可以衡量硬盘设备的性能呢?非常遗憾的是,iostat(1)和sar(1)都没有,这是因为它们所依赖的/proc/diskstats不提供这项数据。要真正理解iostat的输出结果,应该从理解/proc/diskstats开始。

# cat /proc/diskstats 8 0 sda 239219 1806 37281259 2513275 904326 88832 50268824 26816609 0 4753060 29329105 8 1 sda1 338 0 53241 6959 154 0 5496 3724 0 6337 10683 8 2 sda2 238695 1797 37226458 2504489 620322 88832 50263328 25266599 0 3297988 27770221 8 16 sdb 1009117 481 1011773 127319 0 0 0 0 0 126604 126604 8 17 sdb1 1008792 480 1010929 127078 0 0 0 0 0 126363 126363 253 0 dm-0 1005 0 8040 15137 30146 0 241168 2490230 0 30911 2505369 253 1 dm-1 192791 0 35500457 2376087 359162 0 44095600 22949466 0 2312433 25325563 253 2 dm-2 47132 0 1717329 183565 496207 0 5926560 7348763 0 2517753 7532688

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【779898168@qq.com】,我们在确认后,会立即删除,保证您的版权。