如何进行解析linuxIO

本篇文章给大家分享的是有关如何进行解析linux IO,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

成都创新互联-专业网站定制、快速模板网站建设、高性价比赫山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式赫山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖赫山地区。费用合理售后完善,十年实体公司更值得信赖。

容易被误读的IOSTAT

- 因为/proc/diskstats并未把队列等待时间和硬盘处理时间分开,所以凡是以它为基础的工具都不可能分别提供disk service time以及queue有关的值
- iostat是以/proc/diskstats为基础计算出来的,
- 每个I/O的平均耗时是用await表示的,但它不能反映硬盘设备的性能,因为await不仅包括硬盘设备处理I/O的时间,还包括了在队列中等待的时
- %util:该硬盘设备的繁忙比率=[Δio_ticks/Δt],表示该设备有I/O(即非空闲)的时间比率,不考虑I/O有多少,只考虑有没有。太高可能都是顺序IO
- %iowait 表示在一个采样周期内有百分之几的时间属于以下情况:CPU空闲、并且有仍未完成的I/O请求


pidstat 计算进程单位时间内的增量

iotop 观察进程的动态I/O

利用BLKTRACE分析IO性能

使用blktrace需要挂载debugfs:
$ mount -t debugfs debugfs /sys/kernel/debug

利用blktrace把数据记录在文件里,缺省的输出文件名是 sdb.blktrace.,每个CPU对应一个文件。你也可以用-o参数指定自己的输出文件名。
$ blktrace -d /dev/sdb

利用btt分析blktrace数据。btt是对blktrace数据进行自动分析的工具。
btt不能分析实时数据,只能对blktrace保存的数据文件进行分析。使用方法:
把原本按CPU分别保存的文件合并成一个,合并后的文件名为sdb.blktrace.bin:
$ blkparse -i sdb -d sdb.blktrace.bin
执行btt对sdb.blktrace.bin进行分析:
$ btt -i sdb.blktrace.bin

我们看到93.7461%的时间消耗在D2C,也就是硬件层,这是正常的,我们说过D2C是衡量硬件性能的指标,
这里单个IO平均0.129201毫秒,已经是相当快了,单个IO最慢14.246176 毫秒,不算坏。Q2G和G2I都很小,完全正常。
I2D稍微有点大,应该是cfq scheduler的调度策略造成的,你可以试试其它scheduler,比如deadline,比较两者的差异,然后选择最适合你应用特点的那个。

以上就是如何进行解析linux IO,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


名称栏目:如何进行解析linuxIO
浏览路径:http://myzitong.com/article/pgjihh.html