5
性能调整高负载Apache服务器
我想了解一些(对我们而言)负载很重的Web服务器遇到的一些服务器性能问题。环境如下: Debian Lenny(所有稳定的软件包以及安全更新补丁) 阿帕奇2.2.9 PHP 5.2.6 Amazon EC2大型实例 我们看到的行为是,Web通常感觉很敏感,但是开始处理请求时会稍有延迟-有时在我们的高峰使用时间中只有一秒钟的时间,有时是2-3秒。在服务器上的实际负载被报告为非常高-通常10.XX或20.xx如报道top。此外,在这些时间(甚至vi)在服务器上运行其他操作非常慢,因此负载肯定就在那里。奇怪的是,除了最初的延迟之外,Apache仍然保持了快速响应。 我们使用prefork将Apache配置如下: StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 和KeepAlive一样: KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 查看服务器状态页面,即使在这些繁重的时刻,我们也很少遇到客户端限制,通常为80-100个请求以及许多处于keepalive状态的请求提供服务。这告诉我将初始请求的速度排除为“等待处理程序”,但我可能是错的。 Amazon的CloudWatch监控告诉我,即使我们的操作系统报告的负载大于15,我们的实例CPU利用率仍在75-80%之间。 输出示例top: top - 15:47:06 up 31 days, 1:38, 8 users, load average: 11.46, 7.10, 6.56 Tasks: 221 total, 28 running, 193 …