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

Linux系统IO分析工具之iotop_ios

 

 

2、使用非交互模式将iotop命令输出信息写入日志 

# nohup iotop -b -o -n 10 -d 5

 

 3、借助iotop命令找到消耗I/O最高的进程,然后通过进程找到其正在执行的SQL语句

# iotop -oP