性能检测工具学习之iotop

性能检测工具学习之iotop

前言

在这篇文章中https://wangtingwei.info/?p=1236 我们介绍了通过iostat来获取系统整体的io情况(read/write),但是当你发现io确实很高,想要排查具体是哪个程序或者应用io高这个命令就不灵了.而iotop却可以实现这个需求 ,他提供了一个动态的数据显示页面,为你提供每个应用程序实时的io状态.

安装

yum install  iotop -y 

选项参数

–version #显示版本号
-h, –help #显示帮助信息
-o, –only #显示进程或者线程实际上正在做的I/O,而不是全部的,可以随时切换按o
-b, –batch #运行在非交互式的模式
-n NUM, –iter=NUM #在非交互式模式下,设置显示的次数,
-d SEC, –delay=SEC #设置显示的间隔秒数,支持非整数值
-p PID, –pid=PID #只显示指定PID的信息
-u USER, –user=USER #显示指定的用户的进程的信息
-P, –processes #只显示进程,一般为显示所有的线程
-a, –accumulated #显示从iotop启动后每个线程完成了的IO总数
-k, –kilobytes #以千字节显示
-t, –time #在每一行前添加一个当前的时间

我常用的参数

  • -0参数

只执行iotop,输出如下:

备注:他会显示所有的进程的io情况,但是大多数都没有实际io(为0),通过-o参数会过滤掉这些非实际io的进程.可以随时按o进行切换

iotop -o 输出如下:

  • -p参数(能够查看指定Pid的io状态)

ps -ef |grep mysqld

iostop -p 20555

  • -u 参数(只查看指定用户的io状态)

我的mysql服务用户是mysql ,web用户是www,分别查看指定用户的io状态

运行iotop后的键位参数

r:反向排序
o:切换至选项–only,
p:切换至–processes选项,
a:切换至–accumulated选项
q:退出
i:改变线程的优先级

输出信息含义

这里我用了dd 命令 测试,另开终端观察,效果如下

前两行输出:

total开头的是总共磁盘read /write

Actual代表实际磁盘 read/write   ,一般我们看actual的就可以

第三行输出(和top)差不多:

Pid信息

user用户信息 

io> 代表当前排序是正序,可以按一下r变成倒叙

command代表执行的命令

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...