故障现象
uptime 的平均负载比其他正常节点偏高,正常节点不到1
root@pveNode38:~# uptime
15:26:56 up 17 days, 5:43, 4 users, load average: 8.83, 8.96, 7.91
root@pveNode38:~#
top 显示upload 高的原因是 iowait 偏高,达到 20左右
root@pveNode38:~# top
top - 15:25:16 up 17 days, 5:42, 4 users, load average: 8.86, 8.98, 7.80
Tasks: 373 total, 1 running, 193 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.5 us, 1.6 sy, 0.0 ni, 75.2 id, 19.6 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 65999920 total, 299716 free, 40101476 used, 25598728 buff/cache
KiB Swap: 8388604 total, 7280836 free, 1107768 used. 25040156 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
处理过程
所以现在目标是找到 iowait 高的原因。iowait高的原因一般是等待io设备,可能是磁盘,也可能是网络。
所以,希望找到cpu的负载和io设备的统计,可以同时查看的工具。
尝试pidstat
pidstat -d 虽然可以观察到进程的 读写io情况,也可以观察到进程的 cpu 使用情况(cpu的统计中 缺少iowait 指标),无法关联
pidstat的cpu统计指标如下,(没有iowait指标)
03:33:44 PM UID PID %usr %system %guest %CPU CPU Command
03:33:47 PM 0 1909 0.33 1.00 0.00 1.33 15 qemu-img
03:33:47 PM 0 2087 0.33 0.67 0.00 1.00 21 corosync
03:33:47 PM 0 2141 0.67 0.67