让 zram 使用 lz4 压缩算法

Sir*_*kin 4 swap compression zram

Ubuntu 18,尝试zram使用lz4压缩。

尝试修改/usr/bin/init-zram-swapping文件

#!/bin/sh
...........
...........
for i in $(seq ${NRDEVICES}); do
  DEVNUMBER=$((i - 1))
  echo $mem > /sys/block/zram${DEVNUMBER}/disksize
  echo lz4 > /sys/block/zram${DEVNUMBER}/comp_algorithm # <= added this line
  mkswap /dev/zram${DEVNUMBER}
  swapon -p 5 /dev/zram${DEVNUMBER}
done
Run Code Online (Sandbox Code Playgroud)

但是,重启后zramctl仍然显示我正在使用lzo算法

NAME       ALGORITHM DISKSIZE  DATA  COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram3 lzo           466M  2.9M 614.2K    1M       4 [SWAP]
/dev/zram2 lzo           466M  2.9M 631.2K    1M       4 [SWAP]
/dev/zram1 lzo           466M  2.9M 536.1K 1020K       4 [SWAP]
/dev/zram0 lzo           466M    3M   610K    1M       4 [SWAP]
Run Code Online (Sandbox Code Playgroud)

我也尝试添加在加入它rc.local,但它抛出device already in use warning,因为据我所知,之前要做的变化需求mkswapswapon运行。

Mod*_*tas 5

这有效:

# initialize the devices
for i in $(seq ${NRDEVICES}); do
  DEVNUMBER=$((i - 1))
  echo lz4 > /sys/block/zram${DEVNUMBER}/comp_algorithm
  echo $mem > /sys/block/zram${DEVNUMBER}/disksize
  mkswap /dev/zram${DEVNUMBER}
  swapon -p 100 /dev/zram${DEVNUMBER}
done
Run Code Online (Sandbox Code Playgroud)

注意:您似乎需要在 zram 大小之前定义压缩算法。设置swapon -p为优先级100以积极使用 zram,因为它可以提高性能。

  • 是的,您似乎需要在 zram 大小之前定义压缩算法。将 swapon -p 设置为 100 swapiness 以积极使用 zram,因为它可以提高性能。 (2认同)
  • 恕我直言,我不明白你为什么在这里使用`swapon -p 100`,而不是`sysctl vm.swappiness=100`? (2认同)