Apache 负载高但流量为零

Apache 负载高但流量为零

我的新服务器有问题..我使用具有 1GB RAM 的 VPS Centos 并且使用 wordpress CMS。

流量<100 人/小时,但 Apache 负载过高,导致服务器挂起,内存为零,无法通过 ssh 连接。我应该重启 vps 才能让它正常工作

Apache 上的负载如下

Tasks:  66 total,   1 running,  65 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.6%us, 12.3%sy,  0.0%ni, 48.1%id, 23.0%wa,  4.8%hi, 10.2%si,  0.0%
Mem:   1018776k total,   116620k used,   902156k free,     1236k buffers
Swap:  1048568k total,    1013052k used,  35516k free,    26628k cached
2949 apache    20   0  459m  42m 3732 D  3.0  4.2   0:09.23 httpd           
2959 apache    20   0  460m  29m 3744 D  2.0  3.0   0:02.72 httpd           
2968 apache    20   0  460m  26m 3808 D  2.0  2.6   0:02.27 httpd            
2972 apache    20   0  460m  24m 3784 D  2.0  2.5   0:02.44 httpd           
2986 apache    20   0  460m  29m 3784 R  2.0  2.9   0:02.40 httpd            
2969 apache    20   0  458m  29m 3864 D  1.6  3.0   0:02.63 httpd           
2974 apache    20   0  460m  25m 3820 D  1.6  2.6   0:02.43 httpd            
2990 apache    20   0  460m  23m 3920 D  1.6  2.4   0:02.36 httpd           
2994 apache    20   0  460m  31m 3756 D  1.6  3.2   0:02.62 httpd            
2956 apache    20   0  460m  26m 3740 D  1.3  2.7   0:02.73 httpd           
2957 apache    20   0  465m  22m 3644 D  1.3  2.3   0:02.80 httpd            
2967 apache    20   0  458m  24m 3764 D  1.3  2.5   0:02.60 httpd           
2970 apache    20   0  463m  25m 3764 D  1.3  2.6   0:03.07 httpd            
2971 apache    20   0  451m  22m 3792 D  1.3  2.3   0:02.47 httpd           
2973 apache    20   0  458m  25m 3768 D  1.3  2.6   0:02.52 httpd            
2987 apache    20   0  465m  20m 3772 D  1.3  2.1   0:03.02 httpd  

但有时服务器正常运行时间超过 5-10 小时,但之后问题就开始出现了

答案1

这可能是您网站上的脚本导致的。请检查您可能已安装的所有插件。

除此之外,请查看以下关于调整/优化 Apache 的文章:

http://www.crucialp.com/resources/tutorials/server-administration/optimize-tweak-high-traffic-servers-apache-load.php

http://blog.oneiroi.co.uk/linux/apache/optimizing-apache-for-high-load-sites-part-2/

答案2

恭喜,您已经使用了几乎所有的交换空间。

这里第一个明显的问题是你深入研究了交换。这可能是导致系统如此严重抖动的原因(在系统中花费了大量时间,I/O 等待和软件中断)。top不过,看起来你在输出之前终止了一些进程,因此释放了一些内存。

首先要做的是减少正在运行的 Apache 进程数。对于小型网站,您不需要那么多进程,这只会让你陷入交换并降低性能……这已经发生了。我建议您从非常小的进程开始,并在必要时增加进程数。例如:

StartServers            4
MinSpareServers         4
MaxSpareServers        10
MaxClients             25

这限制了您只能同时处理 25 个请求(其他人必须排队等待)。但除非您的博客突然出现在 reddit 首页或其他网站上,否则您不太可能达到这个目标。如果您希望这种情况经常发生,您需要一台更大的服务器和一名随时待命的专业系统管理员。

相关内容