X

Linux 手動回收 已經被 Cache 的記憶體

Linux 當記憶體被大量使用, 然後這些記憶體又被當 cache 用, 於是記憶體不足時無法回收, 就會出現問題.

手動回收 Cached Memory

有下述兩種方式可以手動做回收記憶體:

  1. 參考此文: 回收 Linux cached memory
    echo 1 > /proc/sys/vm/drop_caches
    or
    sysctl -w vm.drop_caches=1
  2. 之前 AceLan 長輩指點的方式
    # And free up caches
    #
    echo Freeing the page cache:
    echo 1 > /proc/sys/vm/drop_caches
    echo Free dentries and inodes:
    echo 2 > /proc/sys/vm/drop_caches
    echo "Free the page cache, dentries and the inodes: (1+2)"
    echo 3 > /proc/sys/vm/drop_caches
  3. $ sudo sh -c 'free -m && echo 1 > /proc/sys/vm/drop_caches && free -m' # 看記憶體前後變化

Linux 查看 Cache 的記憶體使用量

Linux 下述有幾個命令可以看到 cache 的記憶體使用量:

  1. htop 的 Help 會看到這個說明: (第三欄的 cache used)
    • Memory bar: [used/buffers/cache used/total].
  2. top 看到的數字: (右下角的 cached Mem)
    • KiB Mem: 32704316 total, 32311364 used, 392952 free, 721316 buffers
    • KiB Swap: 78903288 total, 824512 used, 78078776 free. 24875720 cached Mem
  3. free -m 的 cached 對應的 Mem 欄位
    • total used free shared buffers cached
    • Mem: 31937 31566 371 958 704 24295

相關網頁

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post