一、简介
一款Linux下的io性能监控软件,用于统计CPU使用情况和块设备I/O情况linux vi 命令linux伊甸园,统计时间为下次执行到目前。iostat可以给我们提供丰富的IO状态数据
没有这个命令的话,先安装
sudo apt install sysstat
二、命令参数
iostat [选项] [] []
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况
三、信息指标解读
常用命令:
iostat -x 1
#或者
iostat -x 1 10
显示详尽信息,每一秒采集一次。10采集10次
系统信息:
CPU使用统计信息:用户进程使用率、系统使用率、空闲率等;且以下指标加上去和为1
块设备I/O统计信息:每秒读写的数据量、总读写数据量等。
读指标:
写指标:
抛弃指标:
其它指标:
同时可以结合vmstat查看查看b参数(等待资源的进程数)和wa参数(I/O等待所占用的CPU时间的比率,高过30%时I/O压力高)
其它版本可能出现的指标:(系统版本不同linux查看操作系统版本命令,可能出现以下相关参数)
四、iotop监控c盘I/O相关进程
iotop是一个类似top的工具linux查看操作系统版本命令,拿来显示实时的c盘活动。
iotop监控Linux内核输出的I/O使用信息,但是显示一个系统中进程或线程的当前I/O使用情况。
没有的话先安装
sudo apt install iotop
命令参数使用
-o, --only只显示正在产生I/O的进程或线程。除了传参,可以在运行过程中按o生效。
-b, --batch非交互模式,一般用来记录日志。
-n NUM, --iter=NUM设置监测的次数,默认无限。在非交互模式下很有用。
-d SEC, --delay=SEC设置每次监测的间隔,默认1秒,接受非整形数据例如1.1。
-p PID, --pid=PID指定监测的进程/线程。
-u USER, --user=USER指定监测某个用户产生的I/O。
-P, --processes仅显示进程,默认iotop显示所有线程。
-a, --accumulated显示累积的I/O,而不是带宽。
-k, --kilobytes使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用。
-t, --time 加上时间戳,非交互非模式。
-q, --quiet 禁止头几行,非交互模式。有三种指定方式。
-q 只在第一次监测时显示列名
-qq 永远不显示列名。
-qqq 永远不显示I/O汇总。
#交互按键,和top命令类似,iotop也支持以下几个交互按键。
left和right方向键:改变排序。
r:反向排序。
o:切换至选项--only。
p:切换至--processes选项。
a:切换至--accumulated选项。
q:退出。
i:改变线程的优先级。
命令反例:
iotop -d 2 -n 5
#时间刷新间隔2秒,输出5次
iotop -botq -p 713848
#非交互式,输出pid为713848的进程信息,这里示例713848为nginx进程