
該伺服器運行 Ubuntu 12.04.5 LTS,並用作 Web 伺服器 (apache 2.2.22) 和 ftp 伺服器 (proftpd 1.3.4a)。當這種情況發生 5 分鐘左右時,沒有人可以訪問網頁。 (這是一個虛擬專用伺服器)
這是此時top指令的輸出,
top - 09:06:58 up 16 days, 14:29, 1 user, load average: 36.01, 23.39, 10.79
Tasks: 161 total, 38 running, 123 sleeping, 0 stopped, 0 zombie
Cpu(s): 18.8%us, 56.2%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 25.0%si, 0.0%st
Mem: 8171872k total, 8043880k used, 127992k free, 164308k buffers
Swap: 2096124k total, 0k used, 2096124k free, 7007256k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5348 root 20 0 37536 7092 2104 R 43 0.1 0:43.40 archive.pl
5354 www-data 20 0 174m 6984 4804 R 42 0.1 0:14.65 cron_job_creati
35 root 20 0 0 0 0 R 41 0.0 11:40.57 kswapd0
26 root 20 0 0 0 0 S 39 0.0 1:17.96 sync_supers
5353 www-data 20 0 174m 6984 4804 R 38 0.1 0:13.32 cron_job_creati
5352 www-data 20 0 174m 7232 4940 R 31 0.1 0:10.36 cron_job_creati
5371 root 20 0 25108 308 0 R 24 0.0 0:00.87 master
5358 www-data 20 0 296m 7476 1060 R 21 0.1 0:03.24 apache2
948 root 20 0 25108 1604 1296 S 18 0.0 2:50.30 master
5365 root 20 0 102m 2332 832 R 17 0.0 0:01.10 proftpd
988 root 20 0 102m 2228 728 R 15 0.0 10:38.37 proftpd
5317 www-data 20 0 304m 17m 3344 R 15 0.2 0:28.07 apache2
5369 root 20 0 102m 1916 416 R 15 0.0 0:01.89 proftpd
5225 www-data 20 0 305m 18m 3408 R 11 0.2 0:31.17 apache2
5256 www-data 20 0 304m 17m 3344 R 9 0.2 0:29.83 apache2
5254 www-data 20 0 303m 17m 3336 R 8 0.2 0:27.67 apache2
5345 www-data 20 0 297m 8156 1720 R 6 0.1 0:04.92 apache2
5357 root 20 0 17336 1356 972 R 4 0.0 0:04.48 top
5368 www-data 20 0 296m 6976 624 R 3 0.1 0:00.98 apache2
5363 root 20 0 102m 2128 628 R 1 0.0 0:01.45 proftpd
1 root 20 0 24204 1760 912 S 0 0.0 1:31.62 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:53.40 ksoftirqd/0
5 root 20 0 0 0 0 S 0 0.0 0:00.49 kworker/u:0
6 root RT 0 0 0 0 S 0 0.0 0:00.62 migration/0
7 root RT 0 0 0 0 S 0 0.0 3:14.39 watchdog/0
8 root RT 0 0 0 0 S 0 0.0 2:49.77 migration/1
10 root 20 0 0 0 0 S 0 0.0 0:12.92 ksoftirqd/1
12 root RT 0 0 0 0 S 0 0.0 4:01.38 watchdog/1
13 root RT 0 0 0 0 S 0 0.0 0:34.39 migration/2
15 root 20 0 0 0 0 S 0 0.0 0:12.88 ksoftirqd/2
16 root RT 0 0 0 0 S 0 0.0 3:31.75 watchdog/2
17 root RT 0 0 0 0 S 0 0.0 1:10.81 migration/3
19 root 20 0 0 0 0 S 0 0.0 0:08.38 ksoftirqd/3
20 root RT 0 0 0 0 S 0 0.0 3:30.11 watchdog/3
21 root 0 -20 0 0 0 S 0 0.0 0:00.00 cpuset
22 root 0 -20 0 0 0 S 0 0.0 0:00.00 khelper
23 root 20 0 0 0 0 S 0 0.0 0:00.00 kdevtmpfs
24 root 0 -20 0 0 0 S 0 0.0 0:00.00 netns
25 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/u:1
27 root 20 0 0 0 0 S 0 0.0 0:00.08 bdi-default
28 root 0 -20 0 0 0 S 0 0.0 0:00.00 kintegrityd
29 root 0 -20 0 0 0 S 0 0.0 0:00.00 kblockd
30 root 0 -20 0 0 0 S 0 0.0 0:00.00 ata_sff
31 root 20 0 0 0 0 S 0 0.0 0:00.00 khubd
我注意到kswapd0、sync_supers僅在此時運行。那些是什麼?不需要交換內存,因為有足夠的物理內存? archive.pl 和其他以 cron_ 開頭的指令是我寫的腳本,每 10 分鐘執行一次。他們經常訪問硬碟,但從未導致伺服器運行緩慢。 5分鐘左右後恢復正常。提前致謝。
答案1
有一件事是肯定的,你的平均負載失控了 - load average: 36.01, 23.39, 10.79
。透過查看核心線程,虛擬機器似乎有 4 個 vCPU,對 CPU 進行標準化後,平均負載為 9,5.84, 2.70,這確實很高。任何高於 1.0 的平均負載應調查 I/O、記憶體或 CPU 過載情況。
在您的情況下,磁碟 I/O 似乎不是問題,0.0%wa
表明 CPU 沒有浪費時間等待 I/O,似乎沒有任何進程處於D
狀態。
內存 - 我沒有看到任何交換,實際內存使用情況RES
看起來不錯。
CPU - 您有38 running
任務,在頂部輸出中您可以看到許多處於R
狀態的進程,所有進程都在爭奪 CPU 週期。
我建議透過這個 Linux 期刊鏈接解決平均負載高的問題。例如,您可以先將 cron 作業移出上午 9:00 視窗。