我的服务器一直处于非常高的内存使用状态 ,直到它不会让我通过sshlogin。 我必须重新启动服务器,然后才能login,重新启动时,内存下降到约90%,缓慢运行,达到约190%。
我注意到,重新启动Apache也让我回到90%,我可以慢慢地观看使用托pipe工具的内存上升。 我一直在看顶部,但我不知道该找什么。 我很确定罪魁祸首是Apache,但我不知道为什么。
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
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。 这是二十一世纪:从另一个用户的问答书借: 我的手机有更多的RAM! – 所以build议#1是添加更多的内存。 2GB是最低限度,如果你在一台机器上运行完整的LAMP堆栈(Linux,Apache + PHP和MySQL等数据库),你真的需要4GB。
你也似乎没有交换 – 这是错误的 ,所以build议#2是“configuration一些交换空间”。
包括Linux在内的类似Unix的系统希望能够在内存不足时进行交换。 如果内存不足,而且没有交换空间来插入内存,他们通常会安装并停止工作。
这可能是你正在发生的事情。
如果你在某种虚拟/云端系统上,并且不能添加交换空间,那么你会回到build议#1(添加足够的内存,以免用完)。
如果你configuration了一个没有交换空间的Linux安装,你可以添加一个交换文件( 这里是一个howto,如果你是google的话还有其他的 ),但是重新安装机器和创build一个实际的swap 分区可能更好。
拨下你的Apache设置。 有了这样的记忆水平就像:
StartServers 2 MinSpareServers 1 MaxSpareServers 3 MaxClients 10
(确保重新启动apache)
如果你看到less量的请求,那么在这么多的内存上运行一个完整的LAMP堆栈可能很难。