【问题标题】:One single apache process for Wordpress consuming 100% CPU. What to do?Wordpress 的一个 apache 进程消耗 100% CPU。该怎么办?
【发布时间】:2016-10-18 04:37:43
【问题描述】:

我在亚马逊的一个微型实例上运行一个 Wordpress 网站。对于那些试图弄清楚如何做的人,网络上有很多教程(开始)。启动后,问题就来了。首先我必须安装MySQL 5.6,因为机器上安装的版本没有成功。然后我成功地处理了“/etc/my.cnf”的[mysqld]部分上的“performance_schema = 0”的内存问题。我还将“/etc/httpd/conf/httpd.conf”上的 Apache prefork 规范限制为:

  • StartServers 6
  • MinSpareServers 6
  • MaxSpareServers 6
  • MaxClients 6
  • MaxRequestsPerChild 1000

网站上线运行了几个小时后,它出现了故障,我发现所有 6 个 apache 进程都在消耗所有 CPU(每个进程大约占 CPU 的 16%,如 $ top 所示)。 “也许我不能同时运行这么多进程”我想。我把上面的数字 6 改成了 1,同样的问题:单进程就消耗了所有的 CPU。

PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令

  • 2773 apache 20 0 430m 107m 13m R 99.0 10.8 2:41.35 httpd

除了带有名为“betheme”的付费主题的 Wordpress 站点、它的所有插件以及 Jetpack 插件之外,我没有在机器上运行其他任何东西。值得注意的是,这个网站是一个非常简单的单页。没有博客,没有 cmets。

我该怎么办?有没有人遇到过这个问题并且知道问题所在?

P.S.:这是我的第一个问题 :)

【问题讨论】:

  • 检查日志。也许谷歌和其他人会抓取你。
  • 感谢@Putnik 的提示

标签: mysql wordpress apache amazon-ec2 cpu-usage


【解决方案1】:

按照@Putnik 的提示,我检查了位于“/var/log/httpd/access_log”的 Apache 日志。我偶然发现多个 IP 试图每秒连接到文件“/xmlrpc.php”。我用谷歌搜索了这些查询,我发现把以下几行放在了

<Files "xmlrpc.php">
Order Allow,Deny
deny from all
</Files>

在文件“/var/www/html/.htaccess”上会阻止对“/xmlrpc.php”的访问。这有一些可以在网络上找到的含义,例如无法通过某些专用应用程序连接到 WordPress。由于我的网站非常简单,我不需要任何这些东西,VOILÀ,问题解决了。现在我的 Apache 进程不会消耗 CPU。

【讨论】:

  • 黑客。 Fail2ban 是处理它们的另一种选择。
猜你喜欢
  • 1970-01-01
  • 2010-10-12
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-04
相关资源
最近更新 更多