发布时间:2018-01-11 10:19:36编辑:丝画阁阅读(774)
linux服务器如果磁盘性能不佳,或者进程操作IO量超过磁盘负荷,都会导致磁盘IO响应缓慢,甚至出现宕机的情况。
很多人会说,我有iostat命令啊。前面我的文章也对此命令做过详解,但是如果需要找到哪个进程对磁盘IO操作压力最大,iostat是不能帮我们直接呈现的,这时候,另一个利器iotop就派上用场了。
iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。
一般iotop默认是没有安装的,iotop安装也很简单,你需要如下操作(其它linux版本可自行搜索安装方法):
CentOS/Redhat:yum install iotop
Debian/Ubuntu:apt-get install iotop
编译安装:
wget http://guichaz.free.fr/iotop/files/iotop-0.6.tar.gz
tar zxf iotop-0.4.4.tar.gz
python setup.py build
python setup.py install
iotop输出很容易看懂:
第一行:Read和Write速率总计
第二:实际的Read和Write速率
第三行:参数如下:
线程ID(按p切换为进程ID)
优先级
用户
磁盘读速率
磁盘写速率
swap交换百分比
IO等待所占的百分比
线程/进程命令
-o, --only只显示正在产生I/O的进程或线程。除了传参,可以在运行过程中按o生效。
-b, --batch非交互模式,一般用来记录日志。
-n NUM, --iter=NUM设置监测的次数,默认无限。在非交互模式下很有用。
-d SEC, --delay=SEC设置每次监测的间隔,默认1秒,接受非整形数据例如1.1。
-p PID, --pid=PID指定监测的进程/线程。
-u USER, --user=USER指定监测某个用户产生的I/O。
-P, --processes仅显示进程,默认iotop显示所有线程。
-a, --accumulated显示累积的I/O,而不是带宽。
-k, --kilobytes使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用。
-t, --time 加上时间戳,非交互非模式。
-q, --quiet 禁止头几行,非交互模式。有三种指定方式。
-q 只在第一次监测时显示列名
-qq 永远不显示列名。
-qqq 永远不显示I/O汇总。
和top命令类似,iotop也支持以下几个交互按键。
left和right方向键:改变排序。
r:反向排序。
o:切换至选项--only。
p:切换至--processes选项。
a:切换至--accumulated选项。
q:退出。
i:改变线程的优先级。
itop通过方向键选择按哪一列来排序,基本上我们会以此来判断当前哪些线程/进程对磁盘有IO操作,以及操作的IO速率,但是要判断磁盘IO负载是否已饱和,还需要结合top命令,当前磁盘最大性能等指标综合判断。
关键字:
本站部分内容来源网络及网友上传,本站未必能一一鉴别其是否为公共版权或其版权归属,如果您认为侵犯您的权利,本站将表示非常抱歉!
请您速联系本站,本站一经核实,立即删除。删文删帖联系【2789291421@qq.com】