Apache服务器卡住了

我有亚马逊ec2 fedora 8 32位vps

1.7内存的演出

经过几次运行(不知道多less)服务器卡住,只是没有加载(无法访问http://)

当使用“顶”即时获取:

1948 memcache 15 0 33048 856 424 S 0.0 0.0 0:00.04 memcached 2031 root 25 0 2640 1208 1040 S 0.0 0.1 0:00.00 mysqld_safe 2091 mysql 18 0 137m 24m 5472 S 0.0 1.4 0:09.16 mysqld 6690 root 18 0 59928 7968 4712 S 0.0 0.5 0:00.01 httpd 6692 apache 15 0 61100 18m 14m S 0.0 1.1 0:00.10 httpd 6693 apache 22 0 69996 40m 27m S 0.0 2.4 0:00.73 httpd 6694 apache 18 0 64744 27m 19m S 0.0 1.6 0:00.87 httpd 6695 apache 15 0 82488 53m 28m S 0.0 3.1 0:02.25 httpd 6696 apache 15 0 67408 36m 25m S 0.0 2.1 0:00.93 httpd 6697 apache 15 0 64248 26m 18m S 0.0 1.5 0:00.23 httpd 6698 apache 15 0 65884 27m 17m S 0.0 1.6 0:00.38 httpd 6699 apache 18 0 64840 26m 17m S 0.0 1.5 0:00.42 httpd 6700 apache 15 0 66324 34m 25m S 0.0 2.0 0:00.93 httpd 6702 apache 15 0 68668 29m 17m S 0.0 1.7 0:01.20 httpd 6703 apache 16 0 60344 10m 6788 S 0.0 0.6 0:00.01 httpd 6704 apache 15 0 65784 27m 18m S 0.0 1.6 0:00.84 httpd 6705 apache 15 0 60336 10m 6596 S 0.0 0.6 0:00.00 httpd 6706 apache 15 0 65948 27m 18m S 0.0 1.6 0:00.83 httpd 6707 apache 15 0 64836 25m 17m S 0.0 1.5 0:00.19 httpd 6708 apache 15 0 67104 26m 16m S 0.0 1.6 0:00.21 httpd 

我不知道有多lessMB,只有'服务httpd重新启动'使其再次上线我没有很多traffic at bec atm它唯一的testing服务器

我已经安装了php5.2.6和mysql 5.1.6

这里是configuration的部分:

 Timeout 25 KeepAlive On MaxKeepAliveRequests 150 KeepAliveTimeout 3 <IfModule prefork.c> StartServers 20 MinSpareServers 20 MaxSpareServers 50 ServerLimit 500 MaxClients 500 MaxRequestsPerChild 4000 </IfModule> <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> HostnameLookups Off 

可能是什么问题? 谢谢

编辑:我注意到像.html,.txt的静态文件都很好

当使用PHP然后我们得到的问题,我已经testing了2个简单的脚本:

 <?php getcwd(); ?> <?php phpinfo(); ?> 

PHP被加载为apache_module

php的内存限制是128M

可能是什么问题? 再次感谢

对于只有1.7G内存的服务器,KeepAliveRequests太多了。 减less到30-50。 你也应该减lessMax实例。 你不能适应这个内存500个实例,我会像200-300这样放在这里。

我build议你的应用程序需要你给的那些128M的php? 如果不减less的话。

启用扩展服务器状态并查看http:// server / server-status /以进一步优化。

我认为你开始太多的服务器实例。 你使用哪个模块作为工作者? prefork.c或worker.c?

如果使用prefork.c,则将值“StartServers”,MinSpareServers和MaxSpareServers设置为较小的值,然后查看服务器是否再次挂起。

 <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 500 MaxClients 500 MaxRequestsPerChild 1000 </IfModule> 

另外检查Apache的错误日志的问题。