Lxn-Chan!

(~ ̄▽ ̄)→))* ̄▽ ̄*)o

为树莓派启用zram,也适用于其他Linux发行版和硬件,这里仅作示例。

  • 树莓派:Raspberry Pi 3b
  • SoC:BCM2835
  • RAM:1GB LPDDR2

配置zram

手动启用 Zram

手动启用和zramctl配置方式任选其一即可。

  1. 启用zram模块:
    1
    sudo modprobe zram
  2. 设定zram大小,我这里设定为512MB:
    1
    echo 512M | sudo tee /sys/block/zram0/disksize
  3. 将zram格式化为swap:
    1
    sudo mkswap /dev/zram0
  4. 启用zram:
    1
    sudo swapon /dev/zram0

此时已经可以看到zram了:

1
2
3
4
root@raspberrypi:~# swapon --show
NAME TYPE SIZE USED PRIO
/var/swap file 100M 7.8M -2
/dev/zram0 partition 512M 0B -3

持久化启用zram

  1. 启用zram模块:
    编辑/etc/modules-load.d/zram.conf文件(如果没有则需要创建):
    1
    zram
    编辑/etc/modprobe.d/zram.conf文件(如果没有则需要创建):
    1
    options zram num_devices=1
  2. 设置zram参数
    编辑/etc/udev/rules.d/99-zram.rules文件(如果没有则需要创建):
    1
    KERNEL=="zram0", ATTR{disksize}="512M", ATTR{comp_algorithm}="lz4", TAG+="systemd"
    我这里采用了lz4算法,zram0容量为512MB。
  3. 创建Systemd配置文件使得启动时自动挂载Zram:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Unit]
    Description=Swap with zram
    After=multi-user.target

    [Service]
    Type=oneshot
    RemainAfterExit=true
    ExecStartPre=/usr/sbin/mkswap /dev/zram0
    ExecStart=/usr/sbin/swapon /dev/zram0
    ExecStop=/usr/sbin/swapoff /dev/zram0

    [Install]
    WantedBy=multi-user.target
    其中ExecStart行可添加--priority参数指定优先级,值为0-100,越高越优先,不指定则由内核自动分配并交叉调用,例如:
    1
    ExecStart=/usr/sbin/swapon --priority 50 /dev/zram0
    系统将按照swap的优先级来使用不同的swap项。

至此每次启动时都会由udev自动创建对应参数的zram设备并由Systemd格式化和挂载:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@raspberrypi:~# swapon --show
NAME TYPE SIZE USED PRIO
/var/swap file 100M 0B -2
/dev/zram0 partition 512M 0B 50
root@raspberrypi:~# systemctl status zram
● zram.service - Swap with zram
Loaded: loaded (/etc/systemd/system/zram.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2025-09-01 14:15:03 CST; 5min ago
Process: 872 ExecStartPre=/usr/sbin/mkswap /dev/zram0 (code=exited, status=0/SUCCESS)
Process: 874 ExecStart=/usr/sbin/swapon /dev/zram0 (code=exited, status=0/SUCCESS)
Main PID: 874 (code=exited, status=0/SUCCESS)
CPU: 44ms

Sep 01 14:15:02 raspberrypi systemd[1]: Starting Swap with zram...
Sep 01 14:15:02 raspberrypi mkswap[872]: Setting up swapspace version 1, size = 512 MiB (536866816 bytes)
Sep 01 14:15:02 raspberrypi mkswap[872]: no label, UUID=91cd2b81-2283-1202-9b48-23f2cc4188d4
Sep 01 14:15:03 raspberrypi systemd[1]: Finished Swap with zram.
root@raspberrypi:~# free -h
total used free shared buff/cache available
Mem: 859Mi 270Mi 60Mi 17Mi 528Mi 514Mi
Swap: 611Mi 0B 611Mi

停用zram

  1. 从swap上卸载:
    1
    sudo swapoff /dev/zram0
  2. 重置zram0:
    1
    echo 1 | sudo tee /sys/block/zram0/reset

 简单说两句



联系站长 | 服务状态 | 友情链接

备案号:辽ICP备19013963号

津公网安备12011602300394号

中国互联网违法和不良信息举报中心

架构版本号:8.1.7 | 本站已全面支持IPv6

正在载入运行数据(1/2)请稍后...
正在载入运行数据(2/2)请稍后...

♥stand with innovative technologies of all kinds♥

Copyright 2024 LingXuanNing, All rights reserved.