free 概述
`free` 命令提供了一份關於作業系統目前如何管理記憶體的快照。這有助於判斷系統是否因記憶體不足而導致效能下降,或者是否擁有足夠的空閒記憶體。
理解記憶體類型
要正確解釋 `free` 命令的輸出,理解實體記憶體(RAM)、交換記憶體以及緩衝區/快取(buffer/cache)的概念非常重要。
主要記憶體項目
- Mem (實體記憶體): 系統上安裝的 RAM 總量。這是作業系統和正在執行的程式使用的實際記憶體空間。
- Swap (交換記憶體): 當實體記憶體不足時使用的硬碟空間。它像 RAM 一樣使用,但速度要慢得多。
- total: 總記憶體或交換空間。
- used: 目前使用的記憶體或交換空間。
- free: 可用的記憶體或交換空間。
- shared: 多個行程共享的記憶體。
- buff/cache: 用作核心緩衝區和分頁快取的記憶體。這不是實際'浪費的'記憶體,而是更接近於'可用'記憶體,可以在需要時隨時分配給應用程式。
- available: 當新應用程式請求時可以分配的記憶體量。它比 `free` 欄位能更準確地表示'可用'記憶體量。(在 Linux 核心 3.14 及更高版本中提供)
主要的 free 命令選項
`free` 命令允許透過各種選項更改輸出單位,或過濾並顯示特定資訊。
1. 輸出單位選項
2. 其他有用的選項
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`free` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
透過 `free` 命令的各種使用範例,學習如何有效地監控和分析系統記憶體使用情況。
以人類可讀格式輸出記憶體資訊
free -h
最常用的選項,自動將記憶體資訊轉換為 MB 或 GB 單位,以便於查看。
以百萬位元組為單位輸出記憶體資訊
free -m
當您想清楚地以百萬位元組(MB)為單位檢查記憶體使用情況時使用。
每隔 5 秒更新一次記憶體資訊,共 3 次
free -h -s 5 -c 3
在短時間內觀察系統記憶體變化時非常有用。(例如:在執行特定程式時觀察記憶體使用情況的變化)
單獨輸出緩衝區和快取(以 MB 為單位)
free -m -w
當您想將緩衝區和快取記憶體作為獨立的欄位查看時使用。`-w` 選項主要用於偵錯或詳細分析。
將記憶體使用情況與 Unix 時間戳一起記錄(腳本範例)
echo "$(date +%s),$(free -m | grep Mem | awk '{print $2,$3,$4,$6,$7}')" >> mem_log.csv
可用於 shell 腳本中,以定期記錄記憶體使用情況並建立時間序列資料。