Apache-2.2
Ubuntu 伺服器使用太多記憶體
我的伺服器一直處於非常高的記憶體使用率- 以至於有時它*不會讓我通過 ssh 登錄。*我必須先重新啟動伺服器,然後才能登錄,當它重新啟動時,記憶體的使用率下降到 ~90%,然後慢慢地工作到 ~190%。
我注意到重新啟動 apache 也會讓我回到 90%,並且我可以使用託管工具慢慢觀察記憶體上升。我一直在看頂部,但我不知道要尋找什麼。我很確定罪魁禍首是apache,但我不知道為什麼。
最高 130%
top - 08:14:59 up 49 min, 1 user, load average: 0.04, 0.01, 0.00 Tasks: 41 total, 1 running, 40 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 946344k total, 724484k used, 221860k free, 0k buffers Swap: 0k total, 0k used, 0k free, 0k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 15 0 23456 1664 1276 S 0 0.2 0:01.82 init 1173 messageb 16 0 23436 920 612 S 0 0.1 0:00.01 dbus-daemon 1222 root 15 0 49272 1088 540 S 0 0.1 0:00.02 sshd 1237 root 18 0 27128 1800 1428 S 0 0.2 0:00.00 vsftpd 1245 root 18 0 21088 1020 780 S 0 0.1 0:00.00 cron 1249 mysql 15 0 178m 36m 7356 S 0 4.0 0:01.26 mysqld 1285 syslog 18 0 12460 804 612 S 0 0.1 0:00.00 syslogd 1305 bind 18 0 286m 26m 2056 S 0 2.8 0:00.02 named 1328 root 21 0 6292 500 392 S 0 0.1 0:00.00 courierlogger 1329 root 18 0 18788 812 652 S 0 0.1 0:00.00 authdaemond 1339 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1340 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1341 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1341 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1342 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1343 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1426 root 15 0 37216 2276 1784 S 0 0.2 0:00.00 master 1442 postfix 18 0 39440 2236 1760 S 0 0.2 0:00.00 qmgr 1443 postfix 15 0 39280 2188 1728 S 0 0.2 0:00.00 pickup 1559 root 18 0 120m 3928 2444 S 0 0.4 0:00.06 console-kit-dae 1650 root 16 0 79148 3464 2696 S 0 0.4 0:00.03 sshd 1664 robert 17 0 79148 1744 960 S 0 0.2 0:00.01 sshd 1665 robert 16 0 12476 904 736 S 0 0.1 0:00.01 sftp-server 1666 root 16 0 79120 3516 2732 S 0 0.4 0:00.03 sshd 1680 jackson 15 0 79120 1732 932 S 0 0.2 0:00.14 sshd 1681 jackson 15 0 18032 2140 1500 S 0 0.2 0:00.04 bash 1946 root 18 0 227m 10m 4960 S 0 1.1 0:00.03 apache2 1950 www-data 15 0 270m 52m 3676 S 0 5.7 0:01.34 apache2 1951 www-data 15 0 227m 6828 1232 S 0 0.7 0:00.03 apache2 1952 www-data 15 0 227m 6828 1232 S 0 0.7 0:00.03 apache2 1960 www-data 15 0 227m 7056 1288 S 0 0.7 0:00.02 apache2 1963 www-data 15 0 271m 53m 3696 S 0 5.8 0:01.30 apache2 1964 www-data 15 0 270m 52m 3672 S 0 5.7 0:01.35 apache2 1965 www-data 15 0 270m 52m 3672 S 0 5.7 0:01.21 apache2 1968 root 16 0 79148 3468 2696 S 0 0.4 0:00.04 sshd 1982 robert 18 0 79148 1752 960 S 0 0.2 0:00.00 sshd 1983 robert 18 0 12476 924 732 S 0 0.1 0:00.00 sftp-server 1984 www-data 15 0 227m 6824 1228 S 0 0.7 0:00.02 apache2 1985 www-data 15 0 227m 6824 1228 S 0 0.7 0:00.02 apache2 1986 www-data 15 0 227m 6816 1224 S 0 0.7 0:00.00 apache2 1987 www-data 18 0 227m 5908 560 S 0 0.6 0:00.00 apache2
免費-m
total used free shared buffers cached Mem: 924 697 227 0 0 0 -/+ buffers/cache: 697 227 Swap: 0 0 0
接下來我該怎麼辦?謝謝您的幫助。
** 編輯 **
頂部(推 > 一次)
top - 09:46:06 up 2:21, 1 user, load average: 0.01, 0.03, 0.00 Tasks: 37 total, 1 running, 36 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 946344k total, 799432k used, 146912k free, 0k buffers Swap: 0k total, 0k used, 0k free, 0k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3274 www-data 15 0 273m 54m 4756 S 0 5.9 0:02.84 apache2 2043 www-data 18 0 272m 54m 3692 S 0 5.8 0:03.65 apache2 3109 www-data 15 0 271m 53m 3748 S 0 5.8 0:05.44 apache2 3217 www-data 15 0 270m 52m 3700 S 0 5.7 0:01.46 apache2 3310 www-data 15 0 270m 52m 3672 S 0 5.7 0:01.29 apache2 2044 www-data 15 0 264m 46m 3764 S 0 5.0 0:03.20 apache2 1249 mysql 15 0 244m 38m 7348 S 0 4.2 0:03.35 mysqld 1305 bind 18 0 286m 26m 2060 S 0 2.8 0:00.02 named 2038 root 18 0 227m 10m 4960 S 0 1.1 0:00.06 apache2 3376 www-data 15 0 227m 7220 1376 S 0 0.8 0:00.00 apache2 3291 www-data 15 0 227m 7024 1376 S 0 0.7 0:00.02 apache2 3377 www-data 15 0 227m 6824 1228 S 0 0.7 0:00.00 apache2 3379 www-data 19 0 227m 5924 564 S 0 0.6 0:00.00 apache2 1559 root 18 0 120m 3928 2444 S 0 0.4 0:00.18 console-kit-dae 3358 root 16 0 79120 3508 2732 S 0 0.4 0:00.03 sshd 1650 root 15 0 79148 3476 2696 S 0 0.4 0:00.04 sshd 1426 root 15 0 37216 2276 1784 S 0 0.2 0:00.00 master 1442 postfix 15 0 39440 2236 1760 S 0 0.2 0:00.00 qmgr 3265 postfix 15 0 39280 2192 1728 S 0 0.2 0:00.00 pickup 3373 jackson 18 0 17976 2028 1448 S 0 0.2 0:00.00 bash 1664 robert 15 0 79148 1900 1060 S 0 0.2 0:00.21 sshd 1237 root 18 0 27128 1800 1428 S 0 0.2 0:00.00 vsftpd 3372 jackson 15 0 79120 1724 932 S 0 0.2 0:00.01 sshd 1 root 15 0 23456 1664 1276 S 0 0.2 0:01.82 init 3380 jackson 15 0 19100 1344 1072 R 0 0.1 0:00.06 top 1222 root 15 0 49272 1088 540 S 0 0.1 0:00.06 sshd 1245 root 18 0 21088 1020 780 S 0 0.1 0:00.00 cron 1665 robert 15 0 12476 952 736 S 0 0.1 0:00.21 sftp-server 1173 messageb 16 0 23436 920 612 S 0 0.1 0:00.02 dbus-daemon 1329 root 18 0 18788 812 652 S 0 0.1 0:00.00 authdaemond 1285 syslog 18 0 12460 804 612 S 0 0.1 0:00.00 syslogd 1328 root 21 0 6292 500 392 S 0 0.1 0:00.00 courierlogger 1339 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1340 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1341 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1342 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond 1343 root 18 0 18788 276 112 S 0 0.0 0:00.00 authdaemond
您似乎有 1GB 的 RAM。這是 21 世紀:借用另一個使用者的俏皮話:我的手機有更多的記憶體!– 所以建議#1 是增加更多的記憶體。2GB 是最低限度,如果你在一台機器上執行完整的 LAMP 堆棧(Linux、Apache+PHP 和 MySQL 等數據庫),你真的需要 4GB。
您似乎也沒有交換- 這是Bad and Wrong,所以建議 #2 是“配置一些交換空間”。
包括 Linux 在內的類 Unix 系統希望能夠在 RAM 用完時進行交換。如果它們的 RAM 用完並且沒有交換空間可以將東西塞入它們通常會適應並停止工作。
這可能就是發生在你身上的事情。
如果您在某種虛擬/雲系統上並且無法添加交換空間,那麼您將回到建議 #1(添加足夠的 RAM 以免耗盡)。
如果你配置了一個沒有交換空間的 Linux 安裝,你可以添加一個交換文件(這裡有一個 howto,如果你用Google搜尋,還有其他的),但你最好重新安裝機器並創建一個實際的交換分區 ,這樣會更有效率。