Apache-2.2

Ubuntu 伺服器使用太多記憶體

  • December 1, 2011

我的伺服器一直處於非常高的記憶體使用率- 以至於有時它*不會讓我通過 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搜尋,還有其他的),但你最好重新安裝機器並創建一個實際的交換分區 ,這樣會更有效率。

引用自:https://serverfault.com/questions/336690