我正在寻找一种动态压缩 tmpfs 文件夹的方法。我想将它用于包含大量数据的本地缓存文件夹。我知道有一种方法可以使用 Redis 进行 LZF 压缩,但我更喜欢使用 tmpfs。
答案1
你可以安装一个压缩文件系统在 tmpfs 之上。
如果仍然保留,fusecompress
就很符合目的。
不幸的是它似乎已经过时了,所以我们需要另一个实现(出于性能原因最好不要使用基于 FUSE 的文件系统):
似乎Btrfs
和都ZFS
应该有效 - 但我无法给出使用它们的详细建议。
当然还有其他可以工作的文件系统,但了解哪些解决方案具有合适的功能并非易事。e2压缩器例如,压缩文件,但不压缩目录。根据您的使用情况,您可能需要压缩目录。许多压缩文件系统被排除在外,因为它们是只读的(例如squashfs
),针对从静态映像启动嵌入式设备或实时桌面会话等应用程序。
关键点是性能。它是否足够快取决于您的需求和实现 - 您需要进行测试。
答案2
最近我一直在使用zram 生成器zstd
为内核构建创建压缩目录。目前我remount -o rw,noatime,discard,nodev,nosuid /zram/mountpoint
但这个功能应该是很快就包括在内作为mount-option
。
[~/build]$ zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram2 zstd 5.9G 1.3G 1.3G 1.3G 16 /var/build/sources
/dev/zram1 zstd 15G 1.2G 289.1M 302.9M 16 /var/build/makepkg
/dev/zram0 zstd 3G 9.1M 8.3M 8.7M 16 [SWAP]