Linux

free 輸出中的緩衝區列是什麼?

  • August 2, 2020

這些 問題簡要列出了 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

回答您的使用問題:系統通常會分配比它需要的更多的塊,但隨著“記憶體壓力”的增加,這些額外的塊將被釋放。

引用自:https://unix.stackexchange.com/questions/34422