Zram:修订间差异
跳转到导航
跳转到搜索
第47行: | 第47行: | ||
=== udev设置 === | === udev设置 === | ||
在/etc/udev/rules.d/99-zram.rules(若不存在则创建)中添加如下内容:<syntaxhighlight lang="bash" line="1"> | 在/etc/udev/rules.d/99-zram.rules(若不存在则创建)中添加如下内容:<syntaxhighlight lang="bash" line="1"> | ||
# | #当加载zram0设备时通过sysfs设置zram磁盘大小为8G(也可设置为其它值): | ||
KERNEL=="zram0",ATTR{disksize}="8192M",TAG+="systemd" | KERNEL=="zram0",ATTR{disksize}="8192M",TAG+="systemd" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== ZRAM设置为SWAP == | |||
此章节适用条件同模块自动加载。 | |||
注意:模块自动加载必须设置完成且SWAP将占用zram0。 | |||
创建文件/lib/systemd/system/zram.service并写入以下内容:<syntaxhighlight lang="ini" line="1"> | |||
[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 | |||
</syntaxhighlight>使用<code>systemctl enable zram</code>启用zram作为swap,重启系统生效。 | |||
== 官方资料 == | == 官方资料 == | ||
https://docs.kernel.org/admin-guide/blockdev/zram.html | https://docs.kernel.org/admin-guide/blockdev/zram.html |
2023年9月4日 (一) 08:00的版本
说明
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作为设备管理器。
- 采用systremd作为服务管理器及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,重启系统生效。