WDCP (WDlinux Control Panel) 為國產主機管理面板,其預設 Apache MPM Prefork 參數存在嚴重記憶體洩漏風險與過度併發設定,極易導致小記憶體 VPS 記憶體耗盡觸發 OOM Killer。本文對比 WDCP 預設值與優化實例,給出生產環境建議參數。
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150 <-- 問題核心 1
MaxRequestsPerChild 0 <-- 問題核心 2
</IfModule>
MaxRequestsPerChild 1000 定期回收。<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 50 # 2GB 記憶體建議 40-60,留 512MB 給系統/資料庫
MaxRequestsPerChild 1000 # 每進程處理 1000 請求重生,抑制洩漏
</IfModule>
| 記憶體規格 | 建議 MaxClients | 建議 MaxRequestsPerChild | 預估佔用 |
|---|---|---|---|
| 512MB | 15-20 | 500 | ~400MB |
| 1GB | 30-40 | 800 | ~800MB |
| 2GB | 50-60 | 1000 | ~1.2GB |
| 4GB+ | 80-100 | 2000 | ~2.5GB |
/www/wdlinux/apache/conf/httpd.conf (或對應 Include 檔)。service httpd restart 重啟 Apache。ps -ylC httpd --sort:rss 進程 RSS 穩定不增長。WDCP 圖形介面雖便利,但預設參數面向「通用兼容」而非「生產最優」。務必依實際硬體調整 MPM 參數,並啟用 MaxRequestsPerChild 建立進程定期重生機制,才能在有限記憶體下穩定支撐高併發。