我目前有一个专用服务器,可以为我的一些客户提供共享主机。
服务器规格
- AMD Athlon(tm) 64 X2 双核处理器 4000+
- 4GB DDR 内存
- 1 个希捷 1000GB
我在 CentOS 6.0 64 位操作系统上运行 Apache 2.2.24。
在我的 Directadmin 控制面板中,我收到通知说我的负载太高(有时会超过 100),自从安装 htop 以来,我注意到主要是 apache (httpd) 导致了 CPU 峰值。这些激增持续几分钟,导致 CPU 负载达到 +90%。内存负载始终稳定,仅使用了 25%。
我以前从未真正优化或调整过 Apache 服务器,因此我急需建议。我应该修改哪些设置以防止/最小化 CPU 负载?
先感谢您!
答案1
好的,在我真正回答你的问题之前,我要先说三个要点:
首先,“CPU 繁忙度百分比”是一个垃圾指标。忽略它。
如果此值小于 100%,则您的服务器在下面-utilized(CPU 处于空闲状态,不执行任何操作)。
其次,同样,“平均负载”不是一个很好的指标(尽管它比“CPU 繁忙百分比”要好)。
平均负载 <= 服务器内核数是一个很好的经验法则,但如果平均负载为 10000 并且系统运行良好,您还会在意什么呢?
第三,DirectAdmin、cPanel 及其同类产品都很糟糕。它们就像永远把辅助轮放在自行车上一样:如果不把它们取下来,你就永远学不会如何骑行。
你很可能无法真的在使用 DirectAdmin 或任何其他“控制面板”时优化您的系统 - 开始计划摆脱它(或者如果你不能,至少关闭它的干扰警报并实施合适的监控软件- 提醒表现而不是“哦,嘿,服务器看起来有点忙”)。
底线:如果您的系统性能足够好,可以满足您的需求,就不要乱动它。
如果它不是表现良好(或者你无论如何都想搞砸它)阅读 Lothar 指出的文档并确保你理解您更改的每个参数的作用是什么。
(你链接到的“Linux Stuffs”文章中那种带有建议值的食谱式系统管理是错误的:大多数建议通常都很好,但你需要去读Apache 项目的仔细阅读每个参数的文档,彻底理解它们的作用,并确定适合你环境的正确值,否则你就不是真正的系统管理员,你只是在按按钮。
您还应该参考有关网站容量规划的 Server Fault 问题一些一般指导 - 请记住:了解机器在负载下如何表现的唯一方法是对其进行测试。