Linux

來自 5 個 WP 站點的 LAMP 伺服器 100% CPU 使用率

  • June 9, 2016

我有一台託管在 Google Cloud 中的伺服器,配置為在 LAMP 堆棧上為網站提供服務。目前,所有這些網站都是基於 WordPress 的,其中只有 5 個。

我有一n1-standard-1台伺服器,所以它有 1 個 vCPU 和 3.75 GB 記憶體。考慮到伺服器上的站點負載很小(閱讀:訪問者數量),這應該很多。

現在,CPU 幾乎總是處於或高於 100%。見圖片。

伺服器的CPU使用率

伺服器使用mpm_prefork,配置如下圖:

<IfModule mpm_prefork_module>
   StartServers                    2
   MinSpareServers                 2
   MaxSpareServers                 5
   MaxRequestWorkers               50
   ServerLimit                     50
   MaxConnectionsPerChild          0
</IfModule>

當我重新啟動apache2時,總是出現以下錯誤/var/log/apache2/error.log

[Mon Jun 06 15:01:58.204747 2016] [mpm_prefork:notice] [pid 18177] AH00163: Apache/2.4.10 (Debian) configured -- resuming normal operations
[Mon Jun 06 15:01:58.204791 2016] [core:notice] [pid 18177] AH00094: Command line: '/usr/sbin/apache2'
[Mon Jun 06 15:02:18.815485 2016] [mpm_prefork:error] [pid 18177] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

在執行htop時,我看到 50 個執行緒已啟動,每個執行緒的 CPU 使用率約為 2%(範圍為 1.9% - 2.9%,但大多數為 1.9% 或 2.0%)。我敢肯定,此時訪客流量不會造成沉重負擔 - 事實上,如果有的話。

然而,在另一台伺服器上,我使用幾乎相同的性質,但對於不同的公司,我只看到少數 apache2 執行緒htop,每個幾乎不使用 CPU。這台其他伺服器沒有問題,可以很好地提供流量。

所以我被引導相信某些東西正在耗盡第一台機器上的所有資源——無論是惡意軟體還是應用程序級別的東西,例如 WP 外掛。

所以,我的問題是:

具體來說,我該如何查看導致此問題的原因?問題是 apache2 執行緒單獨使用 100% 以上的 CPU。

我推測有一個外掛會導致問題,例如記憶體外掛或圖像處理外掛或類似的東西,CPU 很重。如果有幫助,我可以提供完整的外掛列表,但是如何從伺服器級別向上工作,而不是從應用程序級別向下工作?

編輯:

查看頂部輸出圖像:

top 命令的輸出

查看 XML-RPC 攻擊,我發現 All In One WP Security 外掛有大約 2000 個錯誤。我想這是我可以開始尋找問題的地方。如果我需要,我會問一些新的東西,如果我可以更具體。謝謝

原來該站點已從另一台伺服器遷移,而舊伺服器仍處於打開狀態。

舊伺服器wp-cron.php每秒通過域名呼叫大約 10 次,因此呼叫了新伺服器。

這導致了大量的 CPU 使用。

我關閉了舊伺服器。

引用自:https://serverfault.com/questions/782336