当达到MaxClients时,我的Apache 2.2(preform MPM)挂起,而不是在子进程空闲时排队请求并提供服务.发生这种情况时,Web服务器完全没有响应,直到手动重新启动.
服务器堆栈是Ubuntu 8,MySQL 5,PHP 5.硬件是双Xeon(2.8),内存为2GB.它每天提供30,000 – 50,000次综合浏览量.将静态图像,CSS和JS卸载到单独的服务器,并使用eAccelerator缓存PHP.许多页面的HTML输出缓存到文件系统.
相关的Apache指令:
KeepAlive On MaxKeepAliveRequests 50 KeepAliveTimeout 2 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 2000
看来您的服务器正在交换.假设apache进程使用16 MB,150 x 16MB = 2400 MB,超出服务器容量(2GB)
检查Apache使用的内存,我认为你需要减少MaxClients值.
您可以在Hardware and OS Issues section中从Apache Performance Tuning中找到有关此内容的更多信息