一、根據性能指標找工具
二、根據工具查性能
三、內存優化策略
常見的優化思路有這么幾種:
1)最好禁止 Swap。如果必須開啟 Swap,降低 swappiness 的值,減少內存回收時 Swap 的使用傾向。
2)減少內存的動態分配。比如,可以使用內存池、大頁(HugePage)等。
3)盡量使用緩存和緩沖區來訪問數據。比如,可以使用堆棧明確聲明內存空間,來存儲需要緩存的數據;或者用Redis 這類的外部緩存組件,優化數據的訪問。
4)使用 cgroups 等方式限制進程的內存使用情況。這樣,可以確保系統內存不會被異常進程耗盡。
5)通過 /proc/pid/oom_adj ,調整核心應用的 oom_score。這樣,可以保證即使內存緊張,核心應用也不會被 OOM殺死。