Memory-Usage
高負荷從何而來?
昨晚我收到了很多來自 DirectAdmin 的消息:你係統上的平均負載是 46.86,或者類似的數字。它帶有一個“頂級”列印輸出,但我從該列印輸出中只能看出 CPU 有 99.7% 處於空閒狀態,並且使用的記憶體似乎很高。但是看了一點我明白這是正常的,只要Swap記憶體低(2G的80M低對嗎?)就沒有問題。
所以我的問題是:高負載從何而來?我應該擔心和/或採取任何行動嗎?
這是在具有 512MB RAM 和 1 個核心的 CentOS VPS 上。它目前僅託管 2 個流量非常低的網站。
從今天早上(半天后)開始的免費命令:
free total used free shared buffers cached Mem: 503396 444488 58908 0 53688 165556 -/+ buffers/cache: 225244 278152 Swap: 2097144 81840 2015304
來自 directAdmin 的第一條消息,包括頂部列印輸出:
This is an automated message notifying you that the 5 minute load average on your system is 46.86. This has exceeded the 10 threshold. One Minute - 51.18 Five Minutes - 46.86 Fifteen Minutes - 30.63 top - 00:16:43 up 92 days, 12:58, 1 user, load average: 51.18, 46.86, 30.63 Tasks: 196 total, 3 running, 193 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 503396k total, 458164k used, 45232k free, 36656k buffers Swap: 2097144k total, 82432k used, 2014712k free, 141668k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12008 root 20 0 15068 1156 760 R 2.2 0.2 0:00.04 /usr/bin/top -c -b -n 1 12012 root 20 0 15068 1144 760 R 2.2 0.2 0:00.03 /usr/bin/top -c -b -n 1 12014 root 20 0 15076 1252 844 R 2.2 0.2 0:00.03 /usr/bin/top -c -b -n 1 11828 diradmin 20 0 53952 2644 2060 S 1.1 0.5 0:00.08 /usr/local/directadmin/dataskq 11881 diradmin 20 0 53952 2644 2060 S 1.1 0.5 0:00.04 /usr/local/directadmin/dataskq 1 root 20 0 19244 1136 916 S 0.0 0.2 0:00.91 /sbin/init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd] 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0] 4 root 20 0 0 0 0 S 0.0 0.0 0:00.58 [ksoftirqd/0] 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [watchdog/0] 6 root 20 0 0 0 0 S 0.0 0.0 0:01.91 [events/0] 7 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [cpuset] 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [khelper] 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [netns] 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [async/mgr] 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [pm] 12 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [sync_supers] 13 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [bdi-default] 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kintegrityd/0] 15 root 20 0 0 0 0 S 0.0 0.0 0:01.03 [kblockd/0] 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kacpid] 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kacpi_notify] 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kacpi_hotplug]
CPU 使用率不是對系統負載的唯一貢獻,另一個是不間斷睡眠 (‘D’) 中的程序。嘗試類似的事情
ps -axu |grep D
(這可能會產生誤報,因為字母 D 可能出現在其他地方,而不僅僅是在 STAT 列中)。如果有任何“D”程序累積,這至少應該給你一個提示。通常,它們正在等待一些沒有立即響應的資源(例如磁碟上的文件)。有時,這些程序可能會掛起很長時間(例如在等待伺服器無法訪問的 NFS 掛載時)。**編輯:**您也可以嘗試類似
ps axu | grep -E " D[<NLsl+]* "
的方法來避免ps -axu |grep D
.