我的 Apache 2.2(预制 MPM)在达到 MaxClients 时挂起,而不是在子进程空闲时排队请求并为它们提供服务。发生这种情况时,Web 服务器完全没有响应,直到手动重新启动。
服务器堆栈为 Ubuntu 8、MySQL 5、PHP 5。硬件为 Dual Xeons (2.8),具有 2GB 内存。它每天提供 30,000 - 50,000 次综合浏览量。静态图像、CSS 和 JS 被卸载到单独的服务器,而 PHP 使用 eAccelerator 进行缓存。许多页面的 HTML 输出被缓存到文件系统中。
相关的 Apache 指令:
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 2
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 2000
Run Code Online (Sandbox Code Playgroud)