來自 5 個 WP 站點的 LAMP 伺服器 100% CPU 使用率
我有一台託管在 Google Cloud 中的伺服器,配置為在 LAMP 堆棧上為網站提供服務。目前,所有這些網站都是基於 WordPress 的,其中只有 5 個。
我有一
n1-standard-1
台伺服器,所以它有 1 個 vCPU 和 3.75 GB 記憶體。考慮到伺服器上的站點負載很小(閱讀:訪問者數量),這應該很多。現在,CPU 幾乎總是處於或高於 100%。見圖片。
伺服器使用
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 很重。如果有幫助,我可以提供完整的外掛列表,但是如何從伺服器級別向上工作,而不是從應用程序級別向下工作?
編輯:
查看頂部輸出圖像:
查看 XML-RPC 攻擊,我發現 All In One WP Security 外掛有大約 2000 個錯誤。我想這是我可以開始尋找問題的地方。如果我需要,我會問一些新的東西,如果我可以更具體。謝謝
原來該站點已從另一台伺服器遷移,而舊伺服器仍處於打開狀態。
舊伺服器
wp-cron.php
每秒通過域名呼叫大約 10 次,因此呼叫了新伺服器。這導致了大量的 CPU 使用。
我關閉了舊伺服器。