Ubuntu 服务器使用太多内存

Jac*_*nkr 2 ubuntu memory top memory-usage apache-2.2

我的服务器一直处于非常高的内存使用率- 以至于它有时不允许我通过 ssh 登录。我必须在我登录之前重新启动服务器,当它重新启动时,内存使用率下降到 ~90% 并且慢慢地工作它高达 ~190%。

我注意到重新启动 apache 也会让我回到 90%,我可以使用托管工具慢慢观察内存上升。我一直在看top,但我不知道该看什么。我很确定罪魁祸首是 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       
Run Code Online (Sandbox Code Playgroud)

自由 -m

             total       used       free     shared    buffers     cached
Mem:           924        697        227          0          0          0
-/+ buffers/cache:        697        227
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

接下来该怎么做?谢谢您的帮助。

** 编辑 **

顶部(推 > 一次)

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  
Run Code Online (Sandbox Code Playgroud)

thi*_*ice 6

调低您的 Apache 设置。具有这种级别的内存,例如:

StartServers 2
MinSpareServers 1
MaxSpareServers 3
MaxClients 10
Run Code Online (Sandbox Code Playgroud)

(一定要重启apache)

如果您看到即使是少量请求,也很难在这么多内存上运行完整的 LAMP 堆栈。


vor*_*aq7 5

您似乎有 1GB RAM。现在是21世纪了:借用另一位网友的俏皮话:我的手机内存比这还多!——所以建议#1 是添加更多内存。2GB 是最低限度,如果您在一台机器上运行完整的 LAMP 堆栈(Linux、Apache+PHP 和 MySQL 等数据库),您确实需要 4GB。


您似乎也没有交换空间- 这是错误的,所以建议#2 是“配置一些交换空间”。
类 Unix 系统(包括 Linux)期望能够在 RAM 耗尽时进行交换。如果它们耗尽了内存,并且没有交换空间来将东西塞进去,它们通常会崩溃并停止工作。
这可能就是发生在你身上的事情。

如果您使用某种虚拟/云系统并且无法添加交换空间,您就会回到建议#1(添加足够的 RAM,这样就不会用完)。
如果你配置的 Linux 安装没有交换空间,你可以添加一个交换文件(这里有一个操作方法,如果你谷歌一下还有其他的),但你最好重新安装机器并创建一个实际的交换分区 ,这样会更有效。