![ff7396be073dc6977f752ef5526527f9.png](https://img-blog.csdnimg.cn/img_convert/ff7396be073dc6977f752ef5526527f9.png)
点击蓝字关注我哦
![863fb2d47b7e327bc31982c14219dc11.png](https://img-blog.csdnimg.cn/img_convert/863fb2d47b7e327bc31982c14219dc11.png)
![5a4e95ff428e1fd33684b4b10e3487a2.gif](https://img-blog.csdnimg.cn/img_convert/5a4e95ff428e1fd33684b4b10e3487a2.gif)
![7ce9f9b34f6ec558e7eb8f4d4236439a.gif](https://img-blog.csdnimg.cn/img_convert/7ce9f9b34f6ec558e7eb8f4d4236439a.gif)
大家好!我是Sean!
上回说到iostat,今天讲一个和它长得很像的命令iotop,功能也是有些类似的,iotop是一个用来监视磁盘I/O使用状况的工具。
iotop
(监视磁盘I/O使用状况的工具)
![2e5f930709108e3d014e9f6a53048014.png](https://img-blog.csdnimg.cn/img_convert/2e5f930709108e3d014e9f6a53048014.png)
![3619f5a5f7b09048f4e57523f9863c7a.png](https://img-blog.csdnimg.cn/img_convert/3619f5a5f7b09048f4e57523f9863c7a.png)
iotop命令 是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。
iotop使用Python语言编写而成,要求Python2.5(及以上版本)和Linux kernel2.6.20(及以上版本)。iotop提供有源代码及rpm包,可从其官方主页下载。
CentOS里一条命令即可安装:
yum install iotop
![25bdf8f13c8e4543f558f81289ad29f6.png](https://img-blog.csdnimg.cn/img_convert/25bdf8f13c8e4543f558f81289ad29f6.png)
![8776e4af714963e56c49e6f589a3360e.png](https://img-blog.csdnimg.cn/img_convert/8776e4af714963e56c49e6f589a3360e.png)
命令参数
-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示NUM次,主要用于非交互式模式。
-d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。
-u USER:监控的进程用户。
iotop常用快捷键
左右箭头:改变排序方式,默认是按IO排序。
r:改变排序顺序。
o:只显示有IO输出的进程。
p:进程/线程的显示方式的切换。
a:显示累积使用量
q:退出。
常用命令
iotop
默认显示信息
iotop -t
增加时间戳列
iotop -d 2 -n 3
2s刷新1次,刷新三次信息后结束
iotop -u root
仅显示root用户下进程的io信息
iotop -a
以累计方式显示信息,数据从iotop命令启动开始做计算
iotop -b > iotop.txt
非交互模式,可以用重定向连续记录一段时间的信息
iotop -k
以kB单位显示读写数据信息
iotop -q
列名称只在第一次迭代时打印
iotop -qq
列名从不打印
iotop -qqq
不会打印I/O摘要
命令详解
默认显示信息
iotop
Total DISK READ
Total DISK WRITE
一方面表示了进程和内核线程之间的总的读写带宽,另一方面也表示内核块设备子系统的。
Actual DISK READ
Actual DISK WRITE
表示在内核块设备子系统和下面硬件(HDD、SSD 等等)对应的实际磁盘 I/O 带宽。
TID 线程号或进程号
PRIO 线程运行时的I/O优先级
USER 进程所属用户
DISK READ 刷新时间间隔内读取数据量
DISK WRITE 刷新时间间隔内写入数据量
SWAPIN 每个进程的交换使用率
IO 每个进程的 I/O 利用率,包含磁盘和交换
COMMAND 进程名字
增加时间戳列
iotop -t
以kB单位显示读写数据信息
iotop -k
数据查看技巧
其实iotop命令显示的信息非常明显了,一目了然,我平时主要是用来具体定位到是哪个进程一直占用磁盘IO,上次讲的iostat只能初步看出系统的磁盘IO是否达到瓶颈,但是也不一定到了瓶颈,而是某些进程搞怪导致的,这是可以用iotop连续观察进程级别的IO情况,就可以很快找到哪个家伙在搞怪了。
思维导图总结
![e52c5e780c51c906dee16531895c010e.png](https://img-blog.csdnimg.cn/img_convert/e52c5e780c51c906dee16531895c010e.png)
今天的分享就到这里啦!感谢各位的阅读!码字不易,如果本文对你有帮助的话,帮忙点个赞吧~哈哈。
![dbd2b236c9140a9f263e86fab4a33ff7.png](https://img-blog.csdnimg.cn/img_convert/dbd2b236c9140a9f263e86fab4a33ff7.png)