監控伺服器上的高 Iowait + 高負載平均值
我有一個 nagios 伺服器,它在幾天前還可以正常工作。我已經停止它並重新啟動它以增加它的 RAM,從那時起,伺服器上的 iowait 急劇增加(超過 20%,之前不到 1%)。我試圖在伺服器上放回原始數量的 RAM,但我仍然遇到同樣的問題。
我已經閱讀了很多關於 serverfault 的類似 iowait 問題,但我從來沒有設法在我的案例中找到解釋:
查看 iotop,我看到 pdflush 有很多 io,它正在做頁面記憶體和 kjournald,這是專用的用於記錄 ext3 文件系統。我不知道這是否正常。根據其他伺服器故障問題,我嘗試將 noatime 放入 fstab。Ext3 文件系統以有序數據模式掛載
Total DISK READ: 0.00 B/s | Total DISK WRITE: 210.44 K/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 650 be/3 root 0.00 B/s 0.00 B/s 0.00 % 99.99 % [kjournald] 11482 be/4 root 0.00 B/s 0.00 B/s 0.00 % 98.42 % [pdflush] 12167 be/4 nagios 0.00 B/s 0.00 B/s 0.00 % 0.12 % nagios -d /srv/eyesofnetwork/nagios-3.4.1/etc/nagios.cfg 11 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.10 % [migration/3] 12168 be/4 nagios 0.00 B/s 0.00 B/s 0.02 % 0.08 % nagios -d /srv/eyesofnetwork/nagios-3.4.1/etc/nagios.cfg 12165 be/4 nagios 0.00 B/s 0.00 B/s 98.42 % 0.02 % nagios -d /srv/eyesofnetwork/nagios-3.4.1/etc/nagios.cfg 2600 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.02 % auditd 12164 be/4 nagios 0.00 B/s 0.00 B/s 0.00 % 0.00 % nagios -d /srv/eyesofnetwork/nagios-3.4.1/etc/nagios.cfg 8 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/2] 20 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/6] 26 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [events/0] 23 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/7] 3047 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % snmpd -Ln -Lf /dev/null -p /var/run/snmpd.pid -a 12169 be/4 nagios 0.00 B/s 0.00 B/s 0.12 % 0.00 % nagios -d /srv/eyesofnetwork/nagios-3.4.1/etc/nagios.cfg 14 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/4] 2601 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % auditd 5 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1] 17 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/5] 5228 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % bash 10 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/2] 13 rt/3 root 0.00 B/s 0.00 B/s 0.10 % 0.00 % [watchdog/3]
以下行
12165 be/4 nagios 0.00 B/s 0.00 B/s 98.42 % 0.02 % nagios -d /srv/eyesofnetwork/nagios-3.4.1/etc/nagios.cfg
似乎很令人驚訝:我怎麼能有 98.42% 的交換,因為我幾乎沒有交換:
free -o total used free shared buffers cached Mem: 4046468 3163796 882672 0 103548 2193604 Swap: 4192956 1572 4191384
頂部不顯示特定的東西,除了高負載和高 iowait
top - 10:07:56 up 12 days, 23:42, 4 users, load average: 8.60, 9.29, 9.85 Tasks: 177 total, 1 running, 176 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 77.2%id, 22.6%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 4046468k total, 3165500k used, 880968k free, 104204k buffers Swap: 4192956k total, 1572k used, 4191384k free, 2201500k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5246 root 15 0 14252 2632 836 R 0.3 0.1 0:03.94 top 1 root 15 0 10372 696 584 S 0.0 0.0 0:03.61 init 2 root RT -5 0 0 0 S 0.0 0.0 0:14.80 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.73 ksoftirqd/0 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 5 root RT -5 0 0 0 S 0.0 0.0 0:13.93 migration/1 6 root 34 19 0 0 0 S 0.0 0.0 0:01.75 ksoftirqd/1 7 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/1 8 root RT -5 0 0 0 S 0.0 0.0 0:09.51 migration/2 9 root 34 19 0 0 0 S 0.0 0.0 0:01.09 ksoftirqd/2 10 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/2 11 root RT -5 0 0 0 S 0.0 0.0 0:08.98 migration/3 12 root 34 19 0 0 0 S 0.0 0.0 0:01.46 ksoftirqd/3 13 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/3 14 root RT -5 0 0 0 S 0.0 0.0 0:20.36 migration/4 15 root 34 19 0 0 0 S 0.0 0.0 0:01.15 ksoftirqd/4 16 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/4
禁用 nagios 程序使系統負載正常(即 < 1 ),但我仍然得到高 iowait。
在頂部,DSK 100% 忙碌,即使沒有執行 nagios 程序。我可以有一個硬碟驅動器問題嗎?(它是西部數字綠色,不應該在這樣的伺服器中執行)。我在 dmesg 或 syslog 上沒有收到任何特殊消息。
哦,對不起。您是否將 WD Green 磁碟用於台式 PC 以外的其他設備?
不。
它們速度慢、不可靠(它們會進入睡眠狀態並從 RAID 陣列中退出),並且完全不適合您想做的事情。
如果您遇到高 IOWait,則意味著磁碟子系統無法處理所需的磁碟 IO 量。
解決這個問題的簡單方法是添加更多磁碟(理想情況下是 RAID6 陣列中的一大堆)。
您還應該使用 smartctl 檢查一般磁碟健康狀況,並進行備份(無論如何都應該定期執行此操作,但如果您有過度使用的 WD Green,我會格外小心。)。