Linux
free 輸出中的緩衝區列是什麼?
這些 問題簡要列出了 free 命令的格式,注意緩衝區是必須寫入磁碟的核心記憶體,記憶體是不需要寫入磁碟的文件數據。
在我的系統上,與大多數時候我免費執行不同,緩衝區佔用了超過 10% 的 RAM。通常,緩衝區是一個很小的,幾乎是像徵性的值。
我的問題是,在稱為緩衝區的區域中究竟是什麼?我可以找它
lsof
嗎?它是否包含尚未刷新的打開文件區域?它是記憶體映射文件區域嗎?它是什麼?系統執行良好,很少使用交換,所以性能很好。
free
從中提取數據/proc/meminfo
slkwr133701:/usr/src/linux # free total used free shared buffers cached Mem: 2053456 434572 1618884 0 77888 201820 slkwr133701:/usr/src/linux # cat /proc/meminfo MemTotal: 2053456 kB MemFree: 1618736 kB Buffers: 77928 kB ....
這是指用於臨時塊 I/O 儲存的記憶體。核心必須不斷分配和釋放相同大小的單元,例如塊 I/O 傳輸、網路數據包和套接字緩衝區
您可以通過執行更好地查看記憶體和緩衝區分配
slabtop
回答您的使用問題:系統通常會分配比它需要的更多的塊,但隨著“記憶體壓力”的增加,這些額外的塊將被釋放。