iotop
iotop –aoP –d 4
命令参数:
-o:只显示有io操作的进程;
-b:批量显示,无交互,主要用作记录到文件;
-n NUM:显示NUM次,主要用于非交互式模式;
-d SEC:间隔SEC秒显示一次;
-p PID:监控的进程pid;
-u USER:监控的进程用户;
iotop 常用快捷键
左右箭头:改变排序方式,默认是按IO排序;
r:改变排序顺序;
o:只显示有IO输出的进程;
p:进程/线程的显示方式的切换;
a:显示累积使用量;
q:退出;
指标解读:
TID:线程 ID (Thread ID),即正在执行 I/O 操作的线程或进程的 ID。
PRIO:I/O 优先级。I/O 优先级与进程的调度优先级不同,表示该线程在 I/O 调度中的优先级。
USER:启动该进程或线程的用户。
DISK READ:磁盘读取速率。表示该进程从磁盘读取数据的速度(B/s、KB/s 等)。
DISK WRITE:磁盘写入速率。表示该进程向磁盘写入数据的速度。
SWAPIN:进程从交换分区中读取数据的百分比,表示该进程访问虚拟内存的频率。如果这个数值较高,意味着系统可能内存不足。
IO:I/O 等待时间,表示进程因为等待 I/O 操作而被阻塞的时间比例。这个值越高,意味着进程等待磁盘响应的时间越多。
COMMAND:进程或线程的执行命令。iostat
iostat命令的基本格式如下所示:
iostat <options> <device name>-c: 显示CPU使用情况
-d: 显示磁盘使用情况
--dec={ 0 | 1 | 2 }: 指定要使用的小数位数,默认为 2
-g GROUP_NAME { DEVICE [...] | ALL } 显示一组设备的统计信息
-H 此选项必须与选项 -g 一起使用,指示只显示组的全局统计信息,而不显示组中单个设备的统计信息
-h 以可读格式打印大小
-j { ID | LABEL | PATH | UUID | ... } [ DEVICE [...] | ALL ] 显示永久设备名。选项 ID、LABEL 等用于指定持久名称的类型
-k 以 KB 为单位显示
-m 以 MB 为单位显示
-n 显示NFS 使用情况
-p [ { DEVICE [,...] | ALL } ] 显示磁盘和分区的情况
-t 打印时间戳。时间戳格式可能取决于 S_TIME_FORMAT 环境变量
-V 显示版本信息并退出
-x 显示详细信息(显示一些扩展列的数据)
-y 如果在给定的时间间隔内显示多个记录,则忽略自系统启动以来的第一个统计信息
-z 省略在采样期间没有活动的任何设备的输出
常见的命令行的使用如下所示:
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB),每1s收集1次数据,共收集10次
iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB),每2s收集1次数据
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)等详细数据, 每1s收集1次数据,总共收集10次
iostat -c 1 10 #查看cpu状态,每1s收集1次数据,总共收集10次