釋放與清除 Linux記憶體中的Cache Memory
在Linux Kernel 2.6.16後對於Linux的VM(Virtual Memory)進行了調整,因此會在top等指令發現雖然process所使用的記憶體不多,但是透過free來觀察卻發現只剩下一點點的剩餘記憶體。
在Linux Kernel 2.6.16後對於Linux的VM(Virtual Memory)進行了調整,因此會在top等指令發現雖然process所使用的記憶體不多,但是透過free來觀察卻發現只剩下一點點的剩餘記憶體。
但是關閉一些程式卻發現total的free memory並沒有被釋放,造成系統剩餘記憶體總是不夠的感覺,而全部processes佔用的記憶體好像也沒有實際上看到的那麼多,這其實是cache占用了memory中的空間。而且但是根據小州老師(kenduest,是我的啟蒙恩師呢~泣~)表示,雖然記憶體剩餘空間看起來沒有被釋放,但是process實際需要使用時kernel仍會自動從memory釋放cache給process使用,所以使用者不必擔心。
要強制手動釋放或清除Linux中的Cache Memory可以使用下面的指令
$echo 3 > /proc/sys/vm/drop_caches
3 是指釋放pagecache、dentries與inodes,也就是釋放所有的cache,其他也可以下:
#釋放pagecache
$echo 1 > /proc/sys/vm/drop_caches
#釋放dentries與inodes
$echo 2 > /proc/sys/vm/drop_caches
要強制手動釋放或清除Linux中的Cache Memory可以使用下面的指令
$echo 3 > /proc/sys/vm/drop_caches
3 是指釋放pagecache、dentries與inodes,也就是釋放所有的cache,其他也可以下:
#釋放pagecache
$echo 1 > /proc/sys/vm/drop_caches
#釋放dentries與inodes
$echo 2 > /proc/sys/vm/drop_caches
使用檔案建置swap
1. 使用 dd 這個指令來新增一個 128MB 的檔案在 /tmp 底下:
dd if=/dev/zero of=/tmp/swap bs=1M count=128
ll -h /tmp/swap
2. 使用 mkswap 將 /tmp/swap 這個檔案格式化為 swap 的檔案格式:
mkswap /tmp/swap
3. 使用 swapon 來將 /tmp/swap 啟動囉!
swapon /tmp/swap
free
swapon -s
4. 使用 swapoff 關掉 swap file
swapoff /tmp/swap
swapoff /dev/hdc7
free
swap 在被建立時,是有限制的喔!
在核心 2.4.10 版本以後,單一 swap 量已經沒有 2GB 的限制了,
但是,最多還是僅能建立到 32 個 swap 的數量!
而且,由於目前 x86_64 (64位元) 最大記憶體定址到 64GB, 因此, swap 總量最大也是僅能達 64GB 就是了!
1. 使用 dd 這個指令來新增一個 128MB 的檔案在 /tmp 底下:
dd if=/dev/zero of=/tmp/swap bs=1M count=128
ll -h /tmp/swap
2. 使用 mkswap 將 /tmp/swap 這個檔案格式化為 swap 的檔案格式:
mkswap /tmp/swap
3. 使用 swapon 來將 /tmp/swap 啟動囉!
swapon /tmp/swap
free
swapon -s
4. 使用 swapoff 關掉 swap file
swapoff /tmp/swap
swapoff /dev/hdc7
free
swap 在被建立時,是有限制的喔!
在核心 2.4.10 版本以後,單一 swap 量已經沒有 2GB 的限制了,
但是,最多還是僅能建立到 32 個 swap 的數量!
而且,由於目前 x86_64 (64位元) 最大記憶體定址到 64GB, 因此, swap 總量最大也是僅能達 64GB 就是了!
沒有留言:
張貼留言