RHEL8启用zRAM
zRAM简介
参考:https://www.hi-linux.com/posts/43918.html
https://adtxl.com/index.php/archives/337.html
zRAM(压缩内存)的意思是说在内存中
开辟一块区域压缩数据
……就是说假设原来150MB
的可用内存
现在可以放下180MB
的东西……本身不会提高内存容量
和运行速度
……只是让后台程序
更少被系统砍掉
罢了,为了能得到更多任务运行
……而且这个压缩动作
会加重CPU负担
。
zRAM在安卓手机上得到了广泛的验证
和应用
。
该文档实测
也适用于Centos7
0.安装内核扩展–非必须
# 安装内核扩展包
dnf install -y kernel-modules-extra
1.启用zram内核模块
# 加载zram模块
modprobe zram
# 在系统启动时自动加载zram内核模块
echo zram >/etc/modules-load.d/zram.conf
# 指定ZRAM设备的数量为1
echo "options zram num_devices=1" >/etc/modprobe.d/zram.conf
# 检查内核是否启用zram
lsmod | grep zram
# 查看内核是否支持zram
modinfo zram
2.配置zRAM分区的大小
https://www.jianshu.com/p/c9d0423d7149
官方
建议, 使用总内存
的 30%-50%
作为zram
, 按照压缩率
为50%
计算, 则内存增加30%-50%
左右。
https://wertherzhang.com/zram/#zram
# 创建一个新文件
vim /etc/udev/rules.d/99-zram.rules
在该文件中,粘贴以下内容(修改disksize属性以适合您的需要):
KERNEL=="zram0", ATTR{disksize}="2048M",TAG+="systemd"
重启udev
服务
# 重启udev服务
systemctl restart systemd-udevd.service
重启udev服务
后,会出现/dev/zram0
设备,但只有重启OS
后才可用
3.禁用原swap分区或原swap文件
在/etc/fstab
文件中,注释
掉/swap.img
开头的行(添加#号)。
注释swap分区后关闭swp。
# 关闭swap
swapoff -a
4.调整内核配置
https://zhuanlan.zhihu.com/p/484408336/etc/sysctl.conf
# 优化zarm磁盘读取
vm.page-cluster = 0
# 让内存更有序
## 当页框碎片指数低于该阈值会触发碎片整理
## 默认是 500(介于 0 和 1000 之间的值)
vm.extfrag_threshold = 0
# 使内核配置生效
sysctl -p
5.创建一个zram服务文件
vim /etc/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
必须重启OS
后,启用zram
服务
# 重载配置文件
systemctl daemon-reload
# 启用服务
systemctl enable --now zram
# 查看zram服务
systemctl status zram
6.检查zRAM是否正常工作
重启系统
后,检查zRAM
是否正常工作
# 查看zRAM加载情况
zramctl
# 检查zRAM是否正常工作
cat /proc/swaps
现在,应该看到/dev/zram0
被当作swap。