Memory
如何釋放 /dev/ram0
我已分配
/dev/ram0
:dd if=/dev/zero of=/dev/ram0 bs=1M count=1024
現在我有 1Gb 的記憶體。如何釋放分配的空間?
我相信,您可以使用
blockdev
可從util-linux
包中獲得的命令(在 Debian 中)blockdev --flushbufs /dev/ram0
brd
用於ramdisk
brd
對於 ramdisk,釋放 RAM 的唯一方法是從核心中刪除模組,或者重新啟動。freeramdisk
不起作用(對我來說)。這是一個使用範例
apt-get install loadln # Contains "freeramdisk" command modprobe brd rd_size=$((1024*128)) # 128MB free -m # total=1000 used=356 free=643 dd if=/dev/zero bs=1M of=/dev/ram0 # writes 128 x 1MB records (as expected) free -m # total=1000 used=485 free=515 freeramdisk # "freeramdisk: cannot open /dev/ram: No such file or directory" free -m # total=1000 used=485 free=515 rmmod brd # REMOVE ALL THE RAM DISKS free -m # total=1000 used=358 free=641
dd
除了使用讀取設備直到失敗之外,似乎沒有一種簡單的方法可以確定 ramdisk 的原始大小。但是,鑑於這些設備本身很小,因此不會花費很長時間。因此可以創建“快速重置”命令:resetramdisk() { mb=$(dd if=/dev/ram0 bs=1M of=/dev/null 2>&1 | sed -n 's/+.*//p;q') if test -n "$mb" then rmmod brd modprobe brd rd_size=$((1024*$mb)) fi }
使用核心啟動時 ramdisk
我相信這些磁碟可以通過 釋放
freeramdisk
,但我現在沒有可以測試的配置。