iotop是一款开源、免费的用来监控磁盘I/O使用状况的类似top命令的工具,iotop可以监控进程的I/O信息。它是Python语言编写的,与iostat工具比较,iostat是系统级别的IO监控,而iotop是进程级别IO监控。
1.安装
# yum -y install iotop
2.语法
iotop (选项)
-o:只显示有io操作的进程 -b:批量显示,无交互,主要用作记录到文件。 -n NUM:显示NUM次,主要用于非交互式模式。 -d SEC:间隔SEC秒显示一次。 -p PID:监控的进程pid。 -u USER:监控的进程用户。
3. iotop的参数
参数 |
长参数 |
参数描述 |
|
--version |
显示版本号 |
-h |
--help |
显示帮助信息 |
-o |
--only |
只显示正在产生I/O的进程或线程,运行过程中,可以通过按o随时切换 |
-b |
--batch |
非交互模式下运行,一般用来记录日志。 |
-n NUM |
--iter=NUM |
设置监控(显示)NUM次,主要用于非交互模式。默认无限 |
-d SEC |
--delay=SEC |
设置显示的间隔秒数,支持非整数 |
-p PID |
--pid=PID |
只显示指定进程(PID)的信息 |
-u USER |
--user=USER |
显示指定的用户的进程的信息 |
-P |
--processes |
只显示进程,不显示所有线程 |
-a |
--accumulated |
累积的I/O,显示从iotop启动后每个进程累积的I/O总数,便于诊断问题 |
-k |
--kilobytes |
显示使用KB单位 |
-t |
--time |
非交互模式下,加上时间戳。 |
-q |
--quiet |
只在第一次监测时显示列名. 去除头部一些行:这个参数可以设置最多3次来移除头部行:-q列头部只在最初交互显示一次;-qq列头部不显示;-qqq,I/O的总结不显示 |
iotop常用快捷键:
左右箭头:改变排序方式,默认是按IO排序。
- r:改变排序顺序。
- o:只显示有IO输出的进程。
- p:进程/线程的显示方式的切换。
- a:显示累积使用量。
- q:退出。
iotop的栗子
1、只显示正在产生I/O的进程
# iotop -o
2、使用非交互模式将iotop命令输出信息写入日志
# nohup iotop -b -o -n 10 -d 5 -t > /tmp/iotop.log &
3、借助iotop命令找到消耗I/O最高的进程,然后通过进程找到其正在执行的SQL语句
# iotop -oP