文件IO消耗分析

本文介绍了Linux下分析文件IO消耗的工具pidstat和iostat的使用,以及如何通过这些工具识别和解决I/O瓶颈问题。当%iowait值高、%util接近100%或avgqu-sz较大时,可能存在I/O瓶颈。分析Java应用时,可通过pidstat找到IO操作多的线程,结合jstack定位到具体代码进行优化。

Linux文件IO消耗分析工具介绍

Linux在操作文件时,将数据放入文件缓存区,直到内存不够或系统要释放内存给用户进程使用时,才写入文件中。因此在查看Linux内存状况时经常会发现可用(free)的物理内存不多,但cached用了很多,这是Linux提升文件IO速度的一种做法,在这种做法下,如物理空闲内存够用,通常在Linux上只有写文件和第一次读取文件时会产生真正的文件IO. 在Linux中要跟踪线程的文件IO的消耗,主要方法是通过pidstat来查找。

pidstat

输入如:pidstat -d -t -p [pid] 1 100 类似的命令即可查看线程的IO消耗状况,必须在2.6.20以上版本的内核或安装SYSSTAT工具后才会有效,执行后的效果如下图

在这里插入图片描述

kB_rd/s表示每秒读取的kB数
kB_wr/s表示每秒写入的kB数

没有安装pidstat或内核版本不在2.6.20以后的版本的情况,可通过iostat来查看,但iostat只能查看整个系统的文件IO消耗情况,无法跟踪到进程的文件IO消耗情况。

iostat

直接输入iostat命令,可查看各个设备的IO历史状况,如下图:
在这里插入图片描述

Device表示设备卷名称或分区名;
tps是每秒的IO请求数,这也是IO消耗情况中值得关注的数字;
kB_read/s表示每秒钟读的kB数; 
kB_w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值