Zram:修订间差异
跳转到导航
跳转到搜索
第31行: | 第31行: | ||
* 采用udev作为设备管理器。 | * 采用udev作为设备管理器。 | ||
* | * 采用systemd作为服务管理器及init系统。 | ||
=== 模块自动加载 === | === 模块自动加载 === |
2023年9月16日 (六) 17:16的版本
说明
zram是一个基于内存的Linux块设备,其页可压缩。
zram通常配合swap使用时可优化内存实现内存压缩功能,也可以直接当作普通块设备使用。
手动加载
modprobe
modprobe可用于加载Linux内核模块。
注意:需要root权限执行。只能加载未加载的模块。
模块参数参数:
参数名称 | 说明 |
---|---|
num_devices | zram设备数量,如modprobe zram num_devices=32 ,用于加载zram时产生32个zram设备文件(zram0到zram31)。
|
zramctl
zramctl是一个设置或控制zram设备的工具。
注意:需要root权限执行。
zram设备文件的大小可由zramctl的-s选项设置。
自动加载
此章节适用于ubuntu 22.04(及以上)或者具有以下特征的Linux系统:
- 采用udev作为设备管理器。
- 采用systemd作为服务管理器及init系统。
模块自动加载
在/etc/modules或者/etc/modules-load/modules.conf(若都不存在则创建/etc/modules-load/modules.conf)中添加一行,内容为zram。
添加后开机将自动加载zram模块。
modprobe选项
在/etc/modprobe.d/zram.conf(若不存在则创建)中添加如下内容:
#使用option选项设置加载模块时的参数。
#下面的设置将zram设备数量设置为32
option zram num_devices=32
udev设置
在/etc/udev/rules.d/99-zram.rules(若不存在则创建)中添加如下内容:
#当加载zram0设备时通过sysfs设置zram磁盘大小为8G(也可设置为其它值):
KERNEL=="zram0",ATTR{disksize}="8192M",TAG+="systemd"
ZRAM设置为SWAP
此章节适用条件同模块自动加载。
注意:模块自动加载必须设置完成且SWAP将占用zram0。
创建文件/lib/systemd/system/zram.service并写入以下内容:
[Unit]
Description=Swap with zram
After=multi-user.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStartPre=/sbin/mkswap /dev/zram0
ExecStart=/sbin/swapon /dev/zram0
ExecStop=/sbin/swapoff /dev/zram0
[Install]
WantedBy=multi-user.target
使用systemctl enable zram
启用zram作为swap,重启系统生效。