在 Linux 系統管理中,free 命令是監控記憶體使用狀況最常用、最基礎的工具之一。許多初學者對其輸出結果感到困惑,特別是「已用」與「可用」記憶體的真實含義。本文將系統整理 free 的參數用法、輸出欄位解讀以及實戰範例,助你精準掌握系統記憶體動態。
基本格式: free [參數]
核心功能: 顯示系統物理記憶體、交換空間以及核心緩衝區的使用與閒置情況。共享記憶體欄位在現代內核中通常被忽略或整合至其他欄位。
| 參數 | 說明 |
|---|---|
-b | 以 Byte(位元組)為單位顯示 |
-k | 以 KB 為單位顯示(預設) |
-m | 以 MB 為單位顯示 (推薦日常使用) |
-g | 以 GB 為單位顯示 |
-h | 人類可讀格式自動切換單位 (最直觀) |
-t | 顯示總計列 |
-s 秒數 | 持續監控,每隔指定秒數刷新一次 |
-o | 不顯示緩衝區調節列(較舊版本相關) |
-V | 顯示版本資訊 |
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 32168 30119 2048 0 4438 17584
Swap: 31996 1899 30097
舊版 free 會顯示 -/+ buffers/cache 行,其邏輯為:
現代版本直接顯示 available 欄位,含義更準確,建議以此為準。
si/so(配合 vmstat 觀察)表示頻繁換頁,系統效能將嚴重下降。free -h -s 3
# 每 3 秒以人類可讀格式刷新一次,按 Ctrl+C 結束
# 取得可用記憶體 (MB)
free -m | awk '/^Mem:/ {print $7}'
# 計算記憶體使用率 (%)
free | awk '/^Mem:/ {printf("%.1f%%\n", ($3/$2)*100)}'
free 很小就以為記憶體不足。真相:Linux 會積極利用閒置記憶體做快取,available 才是關鍵。vmstat、top/htop 綜合分析,建立基準線,設定告警閾值(如 available < 10% 總量或 swap 頻繁讀寫)。
掌握 free 命令,是 Linux 效能調優與故障排查的入門必修課。善用 free -h 快速掌握全局,結合 available 指標做精準決策,讓記憶體管理不再盲目。