?為保證Linux 的使用狀態(tài)正常,不會出現(xiàn)內(nèi)存不足等問題可以通過對其進行應(yīng)用程序和服務(wù)的優(yōu)化。對于運行Java應(yīng)用程序的系統(tǒng)而言,調(diào)整JVM的內(nèi)存參數(shù):
Java -Xmx512m -Xms256m -jar myapp.jar
其中-Xmx:設(shè)置最大堆內(nèi)存。
-Xms:設(shè)置初始堆內(nèi)存。
如果是使用的web服務(wù)器,看要調(diào)整配置文件來限制最大工作進程數(shù)如調(diào)整apache/nginx 的配置。apache 示例(編輯 httpd.conf 或 apache2.conf):
MaxRequestWorkers 150
worker_processes 4;
worker_connections 1024;
Linux系統(tǒng)中的OOM Killer在系統(tǒng)內(nèi)存不足時,會自動終止某些進程來釋放內(nèi)存,可以配置OOM Killer的行為。重要的進程設(shè)置較低的 OOM Score,使其不容易被 OOM Killer 終止。先查看進程的 OOM Score:
cat /proc/
設(shè)置進程的 OOM Score 為較低值(例如 100):
echo 100 | sudo tee /proc/
添加物理內(nèi)存是最直接有效的優(yōu)化應(yīng)用程序和服務(wù)的一大方式,在物理上增加更多的RAM模塊,滿足程序或服務(wù)更大的內(nèi)存需求。購買更多RAM前,檢查系統(tǒng)主板支持的最大內(nèi)存容量。工具可以幫助自動管理和優(yōu)化系統(tǒng)內(nèi)存使用如ZRAM。
ZRAM屬于壓縮內(nèi)存交換機制,可以減少Swap的使用,ZRAM的安裝和啟用:
sudo apt install zram-tools # Ubuntu/Debian
sudo systemctl enable zramswap.service
sudo systemctl start zramswap.service
EarlyOOM 是一個監(jiān)控工具,可以在系統(tǒng)內(nèi)存過低時自動殺掉占用內(nèi)存的進程。安裝 EarlyOOM:
sudo apt install earlyoom # Ubuntu/Debian
sudo systemctl enable earlyoom
sudo systemctl start earlyoom
診斷內(nèi)存使用情況有助于優(yōu)化應(yīng)用程序和服務(wù)配置,合理配置和自動化工具有助于您使用系統(tǒng)在高負載下穩(wěn)定運行。