监控 io 性能
命令 iostat
iostat 命令被用于监视系统输入输出设备和 CPU 的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU 使用情况。同 vmstat 一样,iostat 也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
- 查看系统输入输出设备和 CPU 的使用情况
[root@localhost ~]# iostat -x
Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 2017年11月28日 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.39 0.00 0.57 0.54 0.00 98.50
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.13 2.88 1.41 109.32 22.01 61.33 0.07 15.30 8.15 29.92 2.75 1.18
scd0 0.00 0.00 0.00 0.00 0.02 0.00 8.00 0.00 1.00 1.00 0.00 1.00 0.00
dm-0 0.00 0.00 1.87 0.63 98.28 21.09 95.43 0.08 31.78 11.79 90.70 4.45 1.11
dm-1 0.00 0.00 0.06 0.00 0.47 0.00 16.69 0.00 1.67 1.67 0.00 1.64 0.01
注意: util% 表示 io 等待占比,正常情况下该值和磁盘读写(r/w)成正比,如果该值很大,读写数值很小则说明磁盘存在问题,系统性能会受影响!
iotop 命令
iotop 命令是一个用来监视磁盘 I/O 使用状况的 top 类工具(动态)。iotop 具有与 top 相似的 UI,其中包括 PID、用户、I/O、进程等相关信息。Linux 下的 IO 统计工具如 iostat,nmon 等大多数是只能统计到 per 设备的读写情况,如果你想知道每个进程是如何使用 IO 的就比较麻烦,使用 iotop 命令可以很方便的查看。
- 监视磁盘 I/O 的使用状况
[root@localhost ~]# iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
3694 be/4 root 0.00 B 0.00 B 0.00 % 0.02 % [kworker/0:0]
1 be/4 root 0.00 B 0.00 B 0.00 % 0.00 % systemd --swit~-deserialize 21
2 be/4 root 0.00 B 0.00 B 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B 0.00 B 0.00 % 0.00 % [ksoftirqd/0]
516 be/4 root 0.00 B 0.00 B 0.00 % 0.00 % crond -n
517 be/4 root 0.00 B 0.00 B 0.00 % 0.00 % login -- root
……
说明:
- 左右箭头:改变排序方式,默认是按 IO 排序;
- r:改变排序顺序;
- o:只显示有 IO 输出进程;
- p:进程 / 线程的显示方式的切换;
- a:显示累积使用量;
- q:退出;
注意: 主要关注‘IO>’这一列!