很多 Apache 进程正在占用我的 CPU,使用率始终超过 70%

很多 Apache 进程正在占用我的 CPU,使用率始终超过 70%

我在 1and1 中运行 plesk 面板。我有 120 个站点正在运行,并且所有站点都使用 pligg cms,每个站点每天有 600 名访问者。请参阅以下我的服务器的详细信息:

HDD-1000GB RAM-16GB 处理器-6 核

我总是在 #top 视图中看到很多 apache 进程在运行,所以服务器似乎超载了。如果我可以减少 apache 进程的数量,我认为服务器会没问题。但我不知道为什么有太多 apache 进程在运行。

请参阅下面的链接以获取我的#顶视图的屏幕截图:

http://dl.dropbox.com/u/26967109/%23Top-2.jpg

有时我在 plesk 控制面板中看到太多连接错误,因此我在 [mysqld] 部分添加了以下行:

设置变量=max_connections=416

但我还没有找到解决方案。我还在配置 /etc/httpd/conf/httpd.conf 中添加了 maxclients 和 serverlimit 416

但还没有解决方案。我研究了 7 天多,但没有得到任何解决方案。请帮我解决这个问题。

在高峰时段,我的网站加载时间过长,但非高峰时段则没问题。

请帮助我找出实际问题。

答案1

您的负载很大,正如 EightBitTony 建议的那样,您应该优化查询。如果这不可能,请将您的 Web 服务器和数据库服务器分开。获取一个除了回复数据库请求之外不执行其他操作的附加服务器。

另外检查这是否在你的 mysql 配置中:

  • thread_concurrency

在您的情况下它应该是 12,但是如果您想为您的 apache 保留一些可用的 CPU,您可能需要将其减少到 10 或 8。这家伙解释了您可能想要调整 MySQL 的一些其他事项。您仍然有大量可用内存,因此您应该可以缓存更多查询。

答案2

由于您有大量已连接用户(浏览器),因此您有大量 apache 进程。如果您限制连接数,则某些用户的连接将被拒绝。您还会在该屏幕截图上注意到,mysql 在您的服务器上使用了相当于 2.6 个核心的 CPU。

您的网站非常繁忙,您需要通过减少网站的处理要求来减少负载。提高查询效率,减少脚本处理时间等。如果不知道您的网站在做什么,就不可能提供更具体的建议。

基本上 - 您的服务器很忙,因为它很忙。您不想限制连接(可能),您想让这些连接更高效。

相关内容