服务器io过高可能会导致等待时间较长,影响使用体验,那我们应该如何去检查服务器的读写性能呢?
一、通过 top 命令查看wa指标。
如果服务器的wa很高,那么说明CPU等待磁盘写入完成的时间很长,持续这样的状态可能会导致CPU资源耗尽。
top
op – 17:29:08 up 10 days, 19:20, 1 user, load average: 14.31, 9.34, 9.08
Tasks: 351 total, 1 running, 350 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.9 us, 7.7 sy, 0.3 ni, 2.9 id,
81.7 wa
, 0.0 hi, 0.5 si, 0.0 st
KiB Mem : 8010196 total, 735612 free, 5450964 used, 1823620 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1636516 avail Mem
二、通过iostat 命令查看磁盘的写入和读取情况
iostat -d sda 2
Linux 3.10.0-327.el7.x86_64 (szfyruat01) 07/11/2018 _x86_64_ (8 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.98 10.34 9.89 237685197 227298479
iostat
命令的常见用法:
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态
三、通过 iotop 命令查看高 I/O对应的进程
iotop [OPTIONS]
描述iotop根据Linux内核(需要2.6.20及以上)来监测I/O,并且能显示当前进程/线程的I/O使用率。
FileReadWrite 应用:三个线程,每个线程都在每秒36M,42M,75M的速度读写io