Load-Average
是什麼導致異常的高負載平均值?
我注意到上週二晚上,平均負載急劇上升,由於流量很小,這似乎是不正常的。通常,這些數字通常平均約為 0.40 或更低,並且我的伺服器內容(mysql、php 和 apache)已經過優化。我注意到 IOWait 異常高,即使程序幾乎不使用任何 CPU。
頂部 - 01:44:39 上升 1 天,21:13,1 個使用者,平均負載:1.41、1.09、0.86 任務:總共 60 個,1 個正在執行,59 個正在休眠,0 個停止,0 個殭屍 Cpu0: 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si, 0.0% st CPU1:0.0%us,0.0%sy,0.0%ni,100.0%id,0.0%wa,0.0%hi,0.0%si,0.0%st cpu2: 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3: 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si, 0.0% st cpu4: 0.0%us, 0.0%sy, 0.0%ni, 100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st cpu5: 0.0%us, 0.0%sy, 0.0%ni, 100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st cpu6: 0.0%us, 0.0%sy, 0.0%ni, 100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st cpu7: 0.0%us, 0.0%sy, 0.0%ni, 91.5%id, 8.5%wa, 0.0%hi, 0.0%si, 0.0%st 記憶體:總共 1048576k,已使用 331944k,空閒 716632k,0k 緩衝區 交換:總共 0k,使用 0k,免費 0k,記憶體 0k PID 使用者 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令 1 根 15 0 2468 1376 1140 S 0 0.1 0:00.92 初始化 1656 根 15 0 13652 5212 664 S 0 0.5 0:00.00 apache2 9323 根 18 0 13652 5212 664 S 0 0.5 0:00.00 apache2 10079 根 18 0 3972 1248 972 S 0 0.1 0:00.00 蘇 10080 根 15 0 4612 1956 1448 S 0 0.2 0:00.01 bash 11298 根 15 0 13652 5212 664 S 0 0.5 0:00.00 apache2 11778 chikorit 15 0 2344 1092 884 S 0 0.1 0: 00.05 頂部 15384 根 18 0 17544 13m 1568 S 0 1.3 0:02.28 miniserv.pl 15585 根 15 0 8280 2736 2168 S 0 0.3 0:00.02 sshd 15608 chikorit 15 0 8280 1436 860 S 0 0.1 0:00.02 sshd
這是 VMStat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu-- -- rb swpd 免費 buff 記憶體 si so bi bo in cs us sy id wa 1 0 0 768644 0 0 0 0 14 23 0 10 1 0 99 0
IOStat - 沒什麼不尋常的
總磁碟讀取:67.13 K/s | 總磁碟寫入:0.00 B/s TID PRIO 使用者磁碟讀磁碟寫 SWAPIN IO> 命令 19496 be/4 chikorit 11.85 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k start 19501 be/4 mysql 3.95 K/s 0.00 B/s 0.00 % 0.00 % mysqld 19568 be/4 chikorit 11.85 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k start 19569 be/4 chikorit 11.85 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k start 19570 be/4 chikorit 11.85 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k start 19571 be/4 chikorit 7.90 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k start 19573 be/4 chikorit 7.90 K/s 0.00 B/s 0.00 % 0.00 % apache2 -k start 1 be/4 根 0.00 B/s 0.00 B/s 0.00 % 0.00 % 初始化 11778 be/4 chikorit 0.00 B/s 0.00 B/s 0.00 % 0.00 % top 19470 be/4 mysql 0.00 B/s 0.00 B/s 0.00 % 0.00 % mysqld
載入平均圖表 - http://i.stack.imgur.com/kYsD0.png
在確定之前,我想確定這是否不是 MySQL 問題。此外,這是 OpenVZ 上的 Ubuntu 10.04 LTS 伺服器。
編輯:這可能會給 IO 等待一個很好的畫面
頂部 - 22:12:22 向上 17:41,1 個使用者,平均負載:1.10、1.09、0.93 任務:共 33 個,執行 1 個,睡眠 32 個,停止 0 個,殭屍 0 個 Cpu (s): 0.6% us, 0.2% sy, 0.0% ni, 89.0% id, 10.1% wa, 0.0% hi, 0.0% si, 0.0% st 記憶體:總共 1048576k,已使用 260708k,空閒 787868k,0k 緩衝區 交換:總共 0k,使用 0k,免費 0k,記憶體 0k PID 使用者 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令 1 根 15 0 2468 1376 1140 S 0 0.1 0:00.88 初始化 5849 根 15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 8063 根 15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 9732 根 16 0 8280 2728 2168 S 0 0.3 0:00.02 sshd 9746 chikorit 18 0 8412 1444 864 S 0 0.1 0:01.10 sshd 9747 chikorit 18 0 4576 1960 1488 S 0 0.2 0: 00.24 巴什 13706 chikorit 15 0 2344 1088 884 R 0 0.1 0: 00.03 頂部 15745 chikorit 15 0 12968 5108 1280 S 0 0.5 0: 00.00 apache2 15751 chikorit 15 0 72184 25m 18m S 0 2.5 0: 00.37 php5-fpm 15790 chikorit 18 0 12472 4640 1192 S 0 0.4 0: 00.00 apache2 15797 chikorit 15 0 72888 23m 16m S 0 2.3 0: 00.06 php5-fpm 16038 根 15 0 67772 2848 592 D 0 0.3 0:00.00 php5-fpm 16309 系統日誌 18 0 24084 1316 992 S 0 0.1 0:00.07 rsyslogd 16316 根 15 0 5472 908 500 S 0 0.1 0:00.00 sshd 16326 根 15 0 2304 908 712 S 0 0.1 0:00.02 cron 17464 根 15 0 10252 7560 856 D 0 0.7 0:01.88 psad 17466 根 18 0 1684 276 208 S 0 0.0 0:00.31 psadwatchd 17559 根 18 0 11444 2020 732 S 0 0.2 0:00.47 sendmail-mta 17688 根 15 0 10252 5388 1136 S 0 0.5 0:03.81 蟒蛇 17752 團隊豌豆 19 0 44648 7308 4676 S 0 0.7 1:09.70 ts3server_linux 18098 根 15 0 12336 6380 3032 S 0 0.6 0:00.47 apache2 18099 chikorit 18 0 10368 2536 464 S 0 0.2 0: 00.00 apache2 18120 ntp 15 0 4336 1316 984 S 0 0.1 0:00.87 ntpd 18379 根 15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 18387 mysql 15 0 62796 36m 5864 S 0 3.6 1:43.26 mysqld 19584 根 15 0 12336 4028 668 S 0 0.4 0:00.02 apache2 22498 根 16 0 12336 4028 668 S 0 0.4 0:00.00 apache2 24260 根 15 0 67772 3612 1356 S 0 0.3 0:00.22 php5-fpm 27712 根 15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 27730 根 15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 30343 根 15 0 12336 4028 668 S 0 0.4 0:00.00 apache2 30366 根 15 0 12336 4028 668 S 0 0.4 0:00.00 apache2
這是截至今天的免費 ram。
記憶體的已用空閒共享緩衝區總數 記憶體:1024 302 721 0 0 0 -/+ 緩衝區/記憶體:302 721 交換:0 0 0
更新:查看日誌,特別是導致 CPU 峰值的 PHP5-FPM。我發現它的段由於某種明顯的原因而出現故障。
[03-Jun-2012 06:11:20] 通知:[pool www] 孩子 14132 開始 [03-Jun-2012 06:11:25] 警告:[pool www] 子 13664 在 53.686322 秒後退出信號 11 (SIGSEGV) [03-Jun-2012 06:11:25] 通知:[pool www] 孩子 14328 開始 [03-Jun-2012 06:11:25] 警告:[pool www] 孩子 14132 在信號 11 (SIGSEGV) 上退出 4.708681 秒後開始 [03-Jun-2012 06:11:25] 通知:[pool www] 孩子 14329 開始 [03-Jun-2012 06:11:58] 警告:[pool www] 子 14328 在信號 11 (SIGSEGV) 上退出 32.981228 秒後從開始 [03-Jun-2012 06:11:58] 通知:[pool www] 孩子 15745 開始 [03-Jun-2012 06:12:25] 警告:[pool www] 子 15745 在信號 11 (SIGSEGV) 上退出 27.442864 秒後開始 [03-Jun-2012 06:12:25] 通知:[pool www] 孩子 17446 開始 [03-Jun-2012 06:12:25] 警告:[pool www] 孩子 14329 在信號 11 (SIGSEGV) 上退出 60.411278 秒後開始 [03-Jun-2012 06:12:25] 通知:[pool www] 孩子 17447 開始 [03-Jun-2012 06:13:02] 警告:[pool www] 孩子 17446 在信號 11 (SIGSEGV) 上退出 36.746793 秒後從開始 [03-Jun-2012 06:13:02] 通知:[pool www] 孩子 18133 開始 [03-Jun-2012 06:13:48] 警告:[pool www] 子 17447 在信號 11 (SIGSEGV) 上退出 82.710107 秒後開始
我認為這可能會導致問題。如果這是原因,可能將其關閉為 fastcgi/fcgid 可能會解決它……但是,我仍然想看看是否有其他原因可能導致它這樣做。
我希望伺服器有記憶體問題。這將導致容器必須等待數據來自磁碟而不是緩衝區。如果您有權訪問伺服器,請嘗試
vmstat
在其上執行而不是在容器中執行它。虛擬伺服器的記憶體管理依賴於主機伺服器。我注意到的第一件事是數據中沒有緩衝區、記憶體或交換。這些對性能都很重要。
要查看哪個程序導致高 I/O,您可以使用
dstat
或iotop
。要查看 php 崩潰的原因,請確保在啟動 apache 時執行
ulimit -c unlimited
. 下次當 php 崩潰時,您將有一個核心轉儲。使用bt
裡面的命令gdb
來獲得崩潰的堆棧跟踪。例如gdb /usr/bin/httpd core (gdb) bt