目录
前言
iotop是一款开源、免费的用来监控磁盘I/O使用状况的类似top命令的工具,iotop可以监控进程的I/O信息。它是Python语言编写的,与iostat工具比较,iostat是系统级别的IO监控,而iotop是进程级别IO监控。
概述
iotop命令可以用来监控系统中各个进程对IO的使用量,它和top一样可以在非batch模式下运行时进行与用户交互。它主要可以用于监控:
- 进程/线程的I/O的读写带宽
- 进程/线程swapin的耗时占比
- 进程/线程的I/O阻塞(等待)耗时占比
- 每个进程/线程的I/O优先级
- 系统中I/O总读写带宽
- 系统中I/O实际读写带宽(和总读写带宽有时候值并不一致)
当你需要使用iotop的时候,需要下载(否则无法使用)
选项参数
参数 参数描述
-v--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的总结不显示
常用快捷键(交互模式)
- r:改变排序顺序。
- o:只显示有IO输出的进程。
- p:进程/线程的显示方式的切换。
- a:显示累积使用量。
- q:退出。
案例
iotop -d 5 -o #每隔5秒打印一次信息,仅显示又活跃的I/O简称和线程数据
iotop -d 5 -o -k #每隔5秒打印一次信息,设置单位为KB/s,仅打印又活跃的I/O进程和线程数据
这里为了显示活跃的线程,在另一台主机上通过ab命令对器进行压测
iotop -d 5 -o -k -b | tee iotop.result #每隔5秒将I/O的活跃线程相关信息输出到文件控制台,并同时输出到文件
iotop -d 5 -o -b -k -n 3 | tee iotop.result #每隔5秒将iotop中的有活跃IO的进程/线程相关信息输出到文件控制台,并同时输出到文件,是同计量单位KB/s,统计5此后自动退出
iotop -p 517 -t -b -n 3 | tee iotop.result #纸打印PID号为517的进程号,并在每一行加入了显示时间
总结
iotop可以监控I/O进程和线程的所有数据,他不仅可以动态显示I/O的使用数据,并且能显示他的实际读写带宽。我们可以通过实时监控的方式了解到I/O的使用情况,也可以通过检测到的PID号来对专项内容进行实时的检测