Linux-Kernel

刪除頁面記憶體時,誰在釋放它?

  • August 17, 2017

當我跑

echo 1 > /proc/sys/vm/drop_caches

並且記憶體的記憶體塊被清除了,我怎麼知道是誰釋放了那個記憶體?還是從不再執行的程序中釋放記憶體?

echo 1 > /proc/sys/vm/drop_caches釋放頁面記憶體。這是包含磁碟塊內容的核心記憶體。該記憶體屬於核心。

將其描述為“釋放”記憶體有點誤導。記憶體一開始並沒有被保存:它是一個記憶體。如果記憶體需要用於更重要的目的,則會從記憶體中刪除高速記憶體頁面。這之所以成為可能,正是因為它們沒有被關押——沒有人需要它們。

記憶體條目的內容可以屬於任意數量的程序。記憶體頁通常不屬於單個程序。例如,如果頁麵包含來自文件的記憶體頁面,則可以說它屬於打開該文件的任何程序。但也可以說它屬於整個系統,因為即使目前沒有程序打開文件,記憶體條目也是有用的。

請注意,刪除記憶體幾乎只對一件事有用:使用原始記憶體進行 I/O 基準測試。磁碟記憶體對性能至關重要,刪除它們是對性能的主要影響(順便說一下,在 RAM 中沒有為記憶體留出足夠的空間)。

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