Centos7 查看磁盘i/o, 定位占用i/o读写高的进程


目录

  • Centos7 查看磁盘i/o, 定位占用i/o读写高的进程
  • 概要:
  • 1、iostat 用法
  • 2、先用iostat查看磁盘io 是否读写负载很高
  • 3、找出使用io高的进程的工具 iotop
  • 4、lsof查看端口占用情况


概要:

  • iostat 主要用于输出磁盘IO 和 CPU的统计信息。
  • iostat属于sysstat软件包。可以用yum install sysstat 直接安装。

1、iostat 用法

用法:iostat [选项] [<时间间隔>] [<次数>]

命令参数:
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况

2、先用iostat查看磁盘io 是否读写负载很高

iostat -d -k -x 1 10, 查看TPS和吞吐量信息

如果%util接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于70%,I/O压力就比较大,读取速度有较多的wait,然后再看其他的参数。

rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s
wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s
r/s:每秒完成的读I/O设备次数。即delta(rio)/s
w/s:每秒完成的写I/0设备次数。即delta(wio)/s
rsec/s:每秒读扇区数。即delta(rsect)/s
wsec/s:每秒写扇区数。即delta(wsect)/s
rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为512字节

wKB/s:每秒写K字节数。是wsec/s的一半
avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。即delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:平均I/O队列长度。即delta(aveq)/s/1000(因为aveq的单位为毫秒)
await:平均每次设备I/O操作的等待时间(毫秒)。即delta(ruse+wuse)/delta(rio+wio)
svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio)
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的

iostat -c 1 2 查看cpu状态
间隔1秒显示一次,总共显示2次

3、找出使用io高的进程的工具 iotop

yum install iotop -y

直接执行 iotop 命令

4、lsof查看端口占用情况

需要安装 :yum -y install lsof

lsof -i 列出占用端口情况

lsof -i:80 查看80端口情况