我有一个大问题,当我有大量访问时,我的 Apache 服务器占用 50% 的 CPU,我的网站每天只有 30 000 个页面被浏览,而且有很多静态内容,但服务器负载在 10% 到 50% 之间,我在 Windows 上。我当前的 MPM 设置是:
<IfModule mpm_winnt_module>
ThreadsPerChild 750
MaxRequestsPerChild 10000
</IfModule>
我的服务器是:英特尔® 酷睿™2 双核 T5500 (2*1,66Ghz)、2GB 内存
我怎么解决这个问题 ?
答案1
我猜你只是触及了服务器的极限,尽管这取决于你正在提供什么服务。每天提供 30k 个小型静态文件不应该导致这种负载,但每天提供 30k 个优化的 CMS(如 Drupal/Wordpress)听起来差不多。你的 CPU 也处于专用服务器的低端...我有一些 Intel i3 540 服务器,我认为它们是“低端”,基准测试大约是你的 CPU 的 3 倍。除此之外,你还要考虑 Windows 的开销。
您可以通过以下几种方法确认并缩小问题范围: - 使用 Apache 的 mod_status 查看它正在处理的请求。这样您就可以了解当负载较高时服务器正在做什么,并且可能指向页面变慢。 - 使用 ApacheBench/Siege 对您的网站进行基准测试(我不知道有哪些好的 Windows 基准测试程序)。这会告诉您网站的容量限制,还会告诉您执行的任何优化对其性能有何影响。
除此之外的任何事情实际上都取决于您的特定应用程序和服务器架构。