RHEL8启用zRAM

RHEL8启用zRAM

    • zRAM简介
    • 0.安装内核扩展--非必须
    • 1.启用zram内核模块
    • 2.配置zRAM分区的大小
    • 3.禁用原swap分区或原swap文件
    • 4.调整内核配置
    • 5.创建一个zram服务文件
    • 6.检查zRAM是否正常工作

zRAM简介

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/modules-load.d/zram.conf

# 检查内核是否启用zram
lsmod | grep zram

RHEL8启用zRAM_第1张图片

# 查看内核是否支持zram
modinfo zram

RHEL8启用zRAM_第2张图片


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开头的行(添加#号)。


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


启用zram服务

# 重载配置文件
systemctl daemon-reload

# 启用服务
systemctl enable --now zram

6.检查zRAM是否正常工作

重启系统后,检查zRAM是否正常工作

# 查看zRAM加载情况
zramctl

RHEL8启用zRAM_第3张图片

# 检查zRAM是否正常工作
cat /proc/swaps

现在,应该看到/dev/zram0被当作swap。image.png

你可能感兴趣的:(Linux优化,实测,zRAM)