【Linux资源管理】iotop命令监控磁盘使用情况
一、iotop工具介绍
I/O可谓是数据库\服务器的最大瓶颈问题了,在使用top、nmon、zabbix、sar等工具监控I/O时,要么没有I/O监控(如top、zabbix),要么仅仅监控到磁盘层面(如nmon、sar)。然而,当服务器出现问题时,我们更想了解的是哪个进程占用了较多的I/O,这种情况下就可以使用iotop命令来监控。
redhat linux 5.5自带了iotop工具,无需手动安装。查看是否安装了iotop工具:
[root@OCP ~]# which iotop /usr/sbin/iotop
如果要了解iotop如何使用,可以使用man命令:
[root@OCP ~]# man iotop
二、iotop工具用法
iotop [-选项]
选项有:
选项 | 解释 | 示例 |
-o | 只显示有I/O操作的进程或线程,即存在disk read或disk write。 | iotop -o |
-b | 批量显示,无交互,主要用于记录到文件 | iotop -b >> iotop.txt |
-n NUM | 显示NUM次,主要用于非交互模式 | iotop -b -n 3 >> iotop.txt |
-d SEC | 间隔SEC秒更新一次数据,默认1s | iotop –d 5 |
-p PID | 列出监控的进程,默认全部 | iotop –p 3313(仅监控3313进程) |
-u USER | 列出需要监控的用户,默认所有用户 | iotop –u oracle |
略 |
iotop的快捷键:
左右箭头:改变排序,默认按照IO使用百分比排序
r :反转排序结果
o :只显示有I/O的进程和线程
a :显示累积使用量
q :退出
三、iotop工具展示
第一行是总的I/O统计信息,描述总的I/O读写情况。
第二行是列名称,从左到右依次是:
TID :线程编号
PRIO :未知
USER:用户信息
DISK READ :磁盘读,以对用户友好的方式显示
DISK WRITE:磁盘写,以对用户友好的方式显示
SWAPIN : swap空间使用百分比
IO> :IO使用百分比,“>”代表以IO排序,可以使用左右光标键调整使用哪一列来排序
COMMAND :进程发起程序名
四、iotop使用测试
(1)写数据模拟
往数据库插入大量数据测试,可以看到,此时lgwr进程与dbwn还有arch进程磁盘写非常的高。但是无法看到用户进程信息。
(2)读数据模拟
对无索引的大表(2千万行)进行查询。SELECT * FROM lijiaman.t_iotop a WHERE a.t_name = ‘M’;
可以看到用户进程消耗的IO非常的高,LOCAL=NO是oracle的直连用户进程。
【完】