我有一台 512MB RAM 的 VPS,我认为 apache2 正在搞垮它!我无法从服务器加载页面(使用浏览器)、访问 FTP 或 SSH。VPS 真的停止响应。我只在它上面运行 apache2、php 和 MySQL,这台机器只用于托管一个 wordpress 博客。
顶部 显示以下内容:
top - 03:17:59 up 22:31, 1 user, load average: 60.54, 44.38, 23.35
Mem: 498320k total, 420888k used, 77432k free, 388k buffers
Swap: 2096124k total, 2094196k used, 1928k free, 14068k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18312 www-data 20 0 171m 15m 828 D 0 3.1 0:00.44 apache2
18305 www-data 20 0 170m 13m 992 D 0 2.8 0:00.48 apache2
18273 www-data 20 0 170m 13m 1008 R 0 2.8 0:00.41 apache2
18314 www-data 20 0 171m 13m 784 D 0 2.7 0:00.38 apache2
18307 www-data 20 0 171m 12m 668 D 0 2.6 0:00.40 apache2
18267 www-data 20 0 177m 11m 892 D 0 2.3 0:01.23 apache2
18248 www-data 20 0 177m 10m 872 D 0 2.2 0:02.29 apache2
17955 www-data 20 0 213m 10m 796 D 3 2.1 0:04.76 apache2
18053 www-data 20 0 216m 9964 812 D 0 2.0 0:02.48 apache2
18288 www-data 20 0 173m 9828 572 D 0 2.0 0:01.22 apache2
18237 www-data 20 0 177m 9256 936 D 0 1.9 0:02.13 apache2
18174 www-data 20 0 199m 8784 932 D 0 1.8 0:01.68 apache2
18167 www-data 20 0 199m 8656 904 D 0 1.7 0:02.58 apache2
18183 www-data 20 0 187m 7992 784 D 1 1.6 0:00.97 apache2
18309 www-data 20 0 177m 7876 860 D 0 1.6 0:00.58 apache2
17688 www-data 20 0 217m 7820 24 D 0 1.6 0:08.12 apache2
18170 www-data 20 0 157m 7688 892 D 0 1.5 0:00.40 apache2
18239 www-data 20 0 175m 7684 656 S 0 1.5 0:00.64 apache2
18060 www-data 20 0 195m 7528 920 D 0 1.5 0:01.17 apache2
18204 www-data 20 0 182m 7240 1048 D 1 1.5 0:00.87 apache2
18245 www-data 20 0 175m 7192 644 S 0 1.4 0:00.62 apache2
18232 www-data 20 0 175m 7076 540 D 0 1.4 0:02.52 apache2
18240 www-data 20 0 177m 7028 912 D 1 1.4 0:02.10 apache2
18168 www-data 20 0 180m 6848 960 D 0 1.4 0:01.71 apache2
18306 www-data 20 0 177m 6688 628 D 0 1.3 0:01.89 apache2
18244 www-data 20 0 171m 6588 480 D 0 1.3 0:00.58 apache2
18250 www-data 20 0 177m 5884 896 D 1 1.2 0:03.02 apache2
18176 www-data 20 0 201m 5848 848 D 0 1.2 0:01.22 apache2
18246 www-data 20 0 175m 5400 832 D 0 1.1 0:00.67 apache2
18178 www-data 20 0 201m 5080 860 D 0 1.0 0:02.51 apache2
18365 www-data 20 0 153m 5028 976 D 1 1.0 0:00.10 apache2
18313 www-data 20 0 153m 4944 980 D 1 1.0 0:00.17 apache2
17796 www-data 20 0 218m 4724 808 D 0 0.9 0:05.02 apache2
17681 www-data 20 0 218m 4448 452 D 1 0.9 0:06.90 apache2
17692 www-data 20 0 223m 4228 856 D 0 0.8 0:08.23 apache2
17690 www-data 20 0 217m 4052 656 D 0 0.8 0:09.07 apache2
17680 www-data 20 0 223m 3976 68 D 0 0.8 0:04.86 apache2
17789 www-data 20 0 213m 3852 636 D 0 0.8 0:07.20 apache2
17899 www-data 20 0 225m 3852 588 S 0 0.8 0:02.89 apache2
17676 www-data 20 0 218m 3812 400 D 1 0.8 0:11.65 apache2
17685 www-data 20 0 218m 3760 604 D 0 0.8 0:07.79 apache2
17963 www-data 20 0 226m 3456 424 S 0 0.7 0:04.27 apache2
17946 www-data 20 0 226m 3452 72 D 0 0.7 0:08.25 apache2
18363 www-data 20 0 151m 3376 812 D 0 0.7 0:00.06 apache2
17953 www-data 20 0 224m 3244 76 D 0 0.7 0:05.16 apache2
17764 www-data 20 0 218m 3152 12 D 0 0.6 0:11.63 apache2
18251 www-data 20 0 152m 3036 720 D 0 0.6 0:00.44 apache2
18003 www-data 20 0 216m 2856 20 D 0 0.6 0:05.80 apache2
18368 www-data 20 0 151m 2812 788 D 0 0.6 0:00.06 apache2
18013 www-data 20 0 216m 2808 24 D 0 0.6 0:03.16 apache2
18283 www-data 20 0 152m 2744 860 D 0 0.6 0:00.24 apache2
17794 www-data 20 0 216m 2696 28 D 0 0.5 0:06.49 apache2
Apache2.conf: http://pastebin.com/nGtAR4Dk /etc/php5/apache2/php.ini: http://pastebin.com/mjPSbH0t
我需要做哪些改变才能让 apache2 使用更少的机器资源?
谢谢。
答案1
降低MaxClients
到一定程度,很多一开始就低于 150。根据 Apache 进程的大小,我会从 10 或 20 开始。这至少可以防止程序定期死机。
然后,您可以开始考虑减少这些进程的内存占用,方法是删除不需要的 PHP 和 Apache 模块。考虑到您的内存限制和明显的负载,我认为您几乎肯定会从切换到 worker MPM 和外部 PHP 运行器,或者(如果您真的很有冒险精神)完全放弃 Apache 并使用 nginx 中获得巨大好处。这样做的好处因您提供的静态文件比例而异,但我一直认为“每个 Apache 进程都需要运行 PHP 副本”模型存在相当致命的缺陷。