內存是Linux系統高效運行的核心資源,實時監控和分析內存使用情況,是排查系統卡頓、優化性能、避免 OOM(內存溢出)故障的關鍵。那麼如何查看Linux內存使用情況?我們通過這篇文章來介紹一下。
1.使用free命令查看內存概覽
free是最常用的查看內存使用情況的命令,能顯示系統總的內存、已用、空閒、緩衝區和緩存等信息。
常用選項:
free -h:以人類可讀的方式顯示內存大小
free -m:以MB為單位顯示
free -s 2:每2秒刷新一次,持續監控
輸出中重點關注 available 列,它表示實際可用於啓動新應用的內存,比“free”列更準確,因為Linux會把部分內存用於緩存(buffers/cache),必要時可釋放。
2.使用top或htop查看進程級內存使用
top命令提供實時的系統資源使用情況,包括每個進程的內存消耗。
關鍵字段説明:
VIRT:進程使用的虛擬內存總量
RES:常駐內存大小,實際佔用物理內存的部分
%MEM:該進程使用物理內存的百分比
在top界面中按M鍵可按內存使用量排序,快速定位高內存佔用進程。
若系統支持,推薦使用htop,它提供彩色界面、可滾動、支持鼠標操作,信息更直觀。
3.分析/proc/meminfo獲取詳細內存信息
/proc/meminfo是內核提供的內存狀態接口,包含最詳細的內存統計信息。
常用字段解釋:
MemTotal:總物理內存
MemFree:完全未使用的內存
Buffers和Cache:文件系統緩存和塊設備緩衝
MemAvailable:估計的可用內存
執行cat /proc/meminfo可查看全部內容,適合腳本解析或深入分析
4.其他實用工具與技巧
除了基礎命令,還可以結合以下方式進一步分析:
vmstat -s:列出各項內存事件的統計值
smem:可查看進程的PSS(Proportional Set Size),更公平地評估共享內存下的實際佔用
ps aux --sort=-%mem:按內存使用率排序列出所有進程