內存是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:按內存使用率排序列出所有進程