本以为zram的新压缩算法可以"以时间换空间",没想到mem_used_total全是16777216
个人猜测是zsmalloc的问题.
还有就是zram中的lzo不论写入还是读取都比lz4更快?
记得以前看各种资料都说lz4无害压缩速度,解压速度比lzo更快.
个人猜测也许zram或zsmalloc作者对默认的lzo有更多的测试,调试,和优化工作?
测试结果(也许测试用数据太极端(几乎是压缩的最好情况),可参考另一个测试):
代码: 全选
$ source ./tmpscript
deflate
[deflate]write
536870912 bytes (537 MB, 512 MiB) copied, 13.8869 s, 38.7 MB/s
[deflate]mm_stat
536870912 3276800 16777216 0 16777216 0 0
[deflate](compacted)mm_stat
536870912 3276800 16777216 0 16777216 0 0
[deflate]read
536870912 bytes (537 MB, 512 MiB) copied, 1.73418 s, 310 MB/s
lzo
[lzo]write
536870912 bytes (537 MB, 512 MiB) copied, 2.47235 s, 217 MB/s
[lzo]mm_stat
536870912 5767168 16777216 0 16777216 0 0
[lzo](compacted)mm_stat
536870912 5767168 16777216 0 16777216 0 0
[lzo]read
536870912 bytes (537 MB, 512 MiB) copied, 1.32582 s, 405 MB/s
lz4hc
[lz4hc]write
536870912 bytes (537 MB, 512 MiB) copied, 14.4807 s, 37.1 MB/s
[lz4hc]mm_stat
536870912 3670016 16777216 0 16777216 0 0
[lz4hc](compacted)mm_stat
536870912 3670016 16777216 0 16777216 0 0
[lz4hc]read
536870912 bytes (537 MB, 512 MiB) copied, 1.53962 s, 349 MB/s
lz4
[lz4]write
536870912 bytes (537 MB, 512 MiB) copied, 2.5872 s, 208 MB/s
[lz4]mm_stat
536870912 3670016 16777216 0 16777216 0 0
[lz4](compacted)mm_stat
536870912 3670016 16777216 0 16777216 0 0
[lz4]read
536870912 bytes (537 MB, 512 MiB) copied, 1.55211 s, 346 MB/s
$
代码: 全选
test ()
{
algorithm=$1
sudo modprobe -r zram
sudo modprobe zram num_devices=1
echo ${algorithm} | sudo tee /sys/block/zram0/comp_algorithm
echo 512M |sudo tee /sys/block/zram0/disksize >/dev/null
echo \[${algorithm}\]write
yes 12 | sudo dd of=/dev/zram0 |& tail -n 1
echo \[${algorithm}\]mm_stat
cat /sys/block/zram0/mm_stat
echo 1 | sudo tee /sys/block/zram0/compact >/dev/null
echo 1 | sudo tee /proc/sys/vm/compact_memory >/dev/null
sleep 1
echo \[${algorithm}\]\(compacted\)mm_stat
cat /sys/block/zram0/mm_stat
echo \[${algorithm}\]read
sudo dd of=/dev/null if=/dev/zram0 |& tail -n 1
}
test deflate
test lzo
test lz4hc
test lz4