在我们的 CentOS 6 服务器上,现在 CPU 过载严重,而 RAM 几乎没有使用。
KeepAlive 设置为“开启”,因为我们在您的网站上有一些 AJAX 元素并提供许多文件(如图像等)...
您能给我推荐一些设置来减少 apache 的 CPU 负载吗?就像我说的,我们这台服务器上有很多可用 RAM,但 CPU 能力较弱。
答案1
您会接受“修复编程或获取足够的硬件”吗?
通常,您不能用 RAM 替换 CPU - 通常 RAM 太少意味着需要交换,这意味着 CPU 利用率较低,但反之则不行。
对我来说,现在看起来“基于熟练的开发人员知识和使用分析器进行适当的调试和优化”是有序的,这不是系统管理员的问题。
答案2
我怀疑 Apache 是消耗所有 CPU 的那个,我更怀疑您正在使用 mod_php 运行诸如 PHP 脚本之类的程序,这些程序会进行大量处理。如果是这样,请切换到更可靠的 PHP 运行方式,例如 PHP-FPM,并对 PHP 代码进行一些调试。
答案3
尽可能使用缓存来使用更多的 RAM 和更少的 CPU(不保证),例如使用 Varnish 的前端缓存和使用 memcache 的数据库缓存和/或更积极的数据库缓存设置;如果您有多余的 RAM,请使用它。
另外,如果您无法关闭 KeepAlive,也许您仍然可以调低其超时值。
编辑:分析导致 CPU 使用率的原因以及原因将是起点