解決Ubuntu Apache內存占用過高可從以下方面入手:
排查內存占用情況
top/htop命令查看占用內存高的進程,確認是否為Apache相關進程。Valgrind等工具檢測代碼或模塊中的內存釋放問題。優化Apache配置
MaxRequestWorkers(控制并發進程數)和MaxConnectionsPerChild(限制單個進程處理請求數,避免內存泄漏)。KeepAlive并合理設置KeepAliveTimeout(減少連接開銷,建議5-10秒)。a2dismod命令移除不用的模塊(如mod_ssl若無需HTTPS)。mod_cache/mod_disk_cache緩存靜態內容,mod_deflate壓縮傳輸數據。系統級優化
vm.swappiness值(減少交換空間使用傾向,建議10-30)。fs.file-max等參數提升文件句柄利用率。sudo sync && echo 3 > /proc/sys/vm/drop_caches釋放內存緩存。硬件與監控
apachetop、netdata或Prometheus實時監控內存使用,及時發現異常。操作前建議:先在測試環境驗證配置修改,避免影響生產環境穩定性。
參考來源:[1,2,3,4,5,6,7,9,10,11]