我以以下方式使用 ZRAM 作为 /tmp 文件系统的后备块设备:
echo 8000000000 > /sys/block/zram0/disksize
mkfs.ext4 -O dir_nlink,extent,extra_isize,flex_bg,^has_journal,uninit_bg -m0 \
-b 4096 -L "zram0" /dev/zram0
mount -o barrier=0,commit=240,noatime,nodev,nosuid /dev/zram0 /tmp
chmod aogu+rwx /tmp
对我来说,效果还不错 - 但是,这里有一个问题 - 当文件被删除时,它们不会被清零,因此 ZRAM 不会远程控制压缩页面。显然运行
dd if=/dev/zero of=/tmp/ZERO bs=1M count={free-space-some-rest}; rm /tmp/ZERO
在 ZRAM 中将其清除 - 它会收到零页通知并缩小存储。
如何让 ext4 在删除时清空已使用的页面?此外,还有其他关于如何优化的建议吗?
答案1
尝试启用discard
Ext4 文件系统的挂载选项并运行最新的 Linux 内核。此选项主要用于 SSD。同时,它目前由zram
也。
答案2
使用 fstrim 命令:
fstrim -v /tmp