linux查看磁盘IO,网络 IO可用的命令
top 监控整体服务器,cpu,内存,磁盘,网络等
dstat -d 查看当前磁盘每秒的读取,写入量,单位K
dstat -r 查看当前磁盘随机的读IOPS,写IOPS
dstat -n 查看网卡每秒接收,发送量,单位K,不足1K时显示Byte数
pidstat 统计各个进程的磁盘IO,也可以监控指定进程,还可以监控cpu和内存
iotop 类似top命令,不过iotop是只监控io相关的进程
vmstat 监控io活跃的进程,还可以监控内存,cpu相关
开始对上面各个命令详细解释
1. top 监控整体服务器,cpu,内存,磁盘,网络等最常用的监控命令了,可以查看我的这篇博客
由于以下三个命令都用到了dstat,需要先安装,ubuntu下使用 apt install dstat 安装,centos下使用 yum -y install dstat 进行安装
2. dstat -d 查看当前磁盘每秒的读取,写入量,每秒刷新一次,单位K,不足1K时用B表字节数
每秒刷新一次,普通的机械硬盘可以做到每秒上百MB的读写数据量,SSD硬盘可以做到每秒500MB - 3000MB的读写数据量,大家可以依次估算
如下图,read表磁盘每秒读取量,104B表104字节,writ表磁盘每秒写入量,19K表写入了19K的数据
3. dstat -r 查看当前磁盘随机的读IOPS,写IOPS
每秒刷新一次,普通的机械硬盘可以每秒300次的随机IOPS,SSD硬盘可以每秒8万-10万的随机IOPS,大家可以依次估算自己的硬盘使用情况
如下图,read表随机磁盘的每秒读取次数,writ表随机磁盘的每秒写入次数,即随机IOPS
比如writ为2.57就是每秒随机写入2.57次,极低了
4. dstat -n 查看网卡每秒接收,发送量,单位K,不足1K时显示Byte数
每秒刷新一次,现在都是千M网卡了,也就是网卡可以达到100多M每秒,依次可以估算网络流量距离极限还有多远
如下图
recv表网卡每秒收到的字节数,不足1K时用B表示byte数
send表网卡每秒发送出去的字节数,不足1K时用B表示byte数
5. pidstat 统计各个进程的磁盘IO,还可以监控cpu和内存
每秒刷新一次,最后按下ctrl+C退出时会把刚才的监控平均值打印出来,如下图
可以看到
第一列是当前时间戳
PID表进程号
kB_rd/s 表每秒read磁盘的数据量
kB_wr/s 表每秒write磁盘的数据量
kB_ccwr/s 表任务取消的写入磁盘的KB,当任务截断脏的pagecache的时候会发生
Command表该进程的启动命令
最下面的Average是平均值,可以更清晰地看到各个进程的IO情况
6. iotop 类似top命令,不过iotop是只监控io相关的进程
每秒刷新一次,可以查看哪些进程使用io比较高
按下o键可以只显示I当前O活跃的线程,再按下o键可以恢复显示成全部的IO线程
按下p键可以把线程ID转换为进程ID,再按下p键可以恢复成线程ID
如下图
所有的列讲解一下
Total DISK READ : 从磁盘中读取的总速率
Total DISK WRITE : 往磁盘里写入的总速率
Actual DISK READ : 从磁盘中读取的实际速率
Actual DISK WRITE : 往磁盘里写入的实际速率
TID : 线程ID,按p键可转换成进程ID,再按p键可恢复成线程ID
PRIO : 优先级
USER : 线程所有者
DISK READ : 从磁盘中读取的速率
DISK WRITE : 往磁盘里写入的速率
SWAPIN : swap交换百分比
IO> : IO等待所占用的百分比
COMMAND : 具体的进程命令
7. vmstat 监控io活跃的进程,还可以监控内存,cpu相关
如下图,vmstat 表每隔2秒输出一次,一共输出3次
procs
r 等待运行的进程数
b 处在非中断睡眠状态的进程数
memory
swpd 虚拟内存使用情况,单位:K
free 空闲的内存,单位K
buff 被用来做为缓存的内存数,单位:K
cache 被用来做为缓存的内存数,单位:K
swap
si 从磁盘交换到内存的交换页数量
so 从内存交换到磁盘的交换页数量
io
bi 发送到块设备的块数
bo 从块设备接收到的块数
system
in 每秒的中断数,包括时钟中断
cs 每秒的环境(上下文)切换次数
cpu
us 用户态CPU 使用百分比
sy 内核态CPU 使用百分比
id cpu空闲百分比
wa
st
来源地址:https://blog.csdn.net/yzf279533105/article/details/127178107