L

linux关闭zram后如何再次打开

Captain 电脑 2020-06-19

要重新打开 zram,不同系统的操作方法略有差异,下面以常见的 Linux 发行版(如 Ubuntu、CentOS、Debian)为例,提供两种常用的开启方式。

一、临时开启(重启后失效)
这种方式适合快速测试,不需要修改系统配置文件,步骤如下:
查看当前 zram 状态
执行命令确认 zram 是否真的关闭:

cat /proc/swaps

如果没有看到 /dev/zram0 这类条目,说明 zram 处于关闭状态。
加载 zram 内核模块
先确保 zram 模块已加载,没有加载的话执行:

sudo modprobe zram

创建 zram 设备并配置

创建 zram 设备(以 zram0 为例)

sudo zramctl /dev/zram0 --size 2G --algorithm lz4

--size 2G:设置 zram 大小为 2GB,可根据内存情况调整(一般设为物理内存的 50%~100%)。
--algorithm lz4:使用 lz4 压缩算法,压缩效率和速度平衡较好。

格式化并挂载为交换分区

sudo mkswap /dev/zram0
sudo swapon /dev/zram0

验证是否开启成功
再次执行 cat /proc/swaps,如果出现 /dev/zram0 条目,说明临时开启成功。

二、永久开启(重启后生效)
如果需要每次开机自动启动 zram,需要配置系统服务或初始化脚本,这里以 systemd 为例(主流 Linux 发行版通用):
创建 zram 配置文件
新建文件 /etc/systemd/zram-setup@.service,写入以下内容:

[Unit]
Description=Setup zram device %I
DefaultDependencies=no
Before=dev-zram\x25i.device
Before=swap.target
BindsTo=dev-zram\x25i.device
After=systemd-modules-load.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/bash -c ' \
    modprobe zram; \
    zramctl /dev/%I --size 2G --algorithm lz4; \
    mkswap /dev/%I; \
    swapon /dev/%I; \
'
ExecStop=/usr/bin/bash -c ' \
    swapoff /dev/%I; \
    zramctl --reset /dev/%I; \
'

[Install]
WantedBy=swap.target

启用并启动服务

# 启用 zram0 设备的服务
sudo systemctl enable zram-setup@zram0.service
# 立即启动服务
sudo systemctl start zram-setup@zram0.service

验证永久生效
重启系统后,执行 cat /proc/swaps,确认 /dev/zram0 存在即可。

注意事项
部分发行版(如 Fedora)自带 zram 配置工具 zram-generator,可以直接通过 /etc/systemd/zram-generator.conf 配置,更简单。
zram 大小不要设置过大,否则会增加 CPU 压缩 / 解压缩的开销,反而影响性能。

PREV
Windows系统上使用的U盘、移动硬盘在Mac机器上无法拷入文件解决办法
NEXT
测速工具Homebox部署