当前位置: 代码网 > 服务器>服务器>Linux > 如何通过ZRAM内核模块压缩Ubuntu内存? Linux使用zram压缩内存教程

如何通过ZRAM内核模块压缩Ubuntu内存? Linux使用zram压缩内存教程

2024年10月22日 Linux 我要评论
如果你正在使用 ubuntu 系统,并且希望在内存受限的机器上提升系统性能,zram 是一个非常不错的选择。通过压缩内存中的数据,zram 可以有效减少物理内存的占用,从而让系统可以运行更多的应用程序

如果你正在使用 ubuntu 系统,并且希望在内存受限的机器上提升系统性能,zram 是一个非常不错的选择。通过压缩内存中的数据,zram 可以有效减少物理内存的占用,从而让系统可以运行更多的应用程序,或处理更大规模的任务。

1. 什么是 zram?

zram 是一个 linux 内核模块,它可以在系统内存(ram)中创建一个压缩的块设备 (block device)。通过压缩内存中的数据,zram 可以增加可用内存的有效容量。

与传统的交换分区(swap)相比,zram 不使用磁盘空间,而是直接在内存中进行数据压缩,从而减少了频繁的磁盘 i/o 操作带来的性能瓶颈。

1.1 zram 的工作原理

  • 创建块设备:zram 会创建一个虚拟块设备。这个设备不会像传统块设备(如磁盘分区)那样将数据存储在磁盘上,而是直接将数据保存在内存中。
  • 数据压缩:当系统向 zram 块设备写入数据时,zram 模块会对数据进行压缩,并将压缩后的数据存储在内存中。这种方式可以在不增加物理内存的情况下「变相扩展」内存容量。
  • 数据解压缩:当需要读取存储在 zram 中的数据时,内核会对数据进行解压,然后再将解压后的数据提供给应用程序或系统进程。

zram 的压缩机制虽然可以节省内存,但压缩和解压过程需要 cpu 的参与,所以会增加一定的 cpu 负载。因此,在 cpu 性能较弱的系统中,大量使用 zram 反而可能会导致系统性能下降。

2. 在 ubuntu 加载 zram 模块

2.1 检查 ubuntu 内存使用情况

在启用 zram 之前,最好先通过free命令来了解系统当前的内存使用情况:

free -h

使用 free 命令查看 ubuntu 内存使用

此命令会显示你的总内存、已用内存和空闲内存。通过这些信息,可以与启用 zram 之后进行对比。

2.2 在 ubuntu 上加载 zram 模块

zram 已经包含在 linux 内核中,我们只需加载 zram 模块并验证模块是否加载成功。

sudo modprobe zram # (临时)加载 zram 内核模块
lsmod | grep zram # 查看是否加载成功

加载 zram 内核模块并验证是否成功

如果在输出中看到zram,就表示模块已成功加载。

第 3 步:在 ubuntu 中配置 zram

3.1 创建 zram 服务

为了方便配置和管理,我们可以将 zram 配置编写成一个服务脚本,来方便随时启用和禁用:

1、使用你习惯的文本编辑器(如 vim 或 nano),创建一个zram.service服务配置文件:

sudo vim /etc/systemd/system/zram.service

2、将以下配置并粘贴到文件中:

[unit]
description=zram configuration
after=local-fs.target
[service]
type=oneshot
execstart=/usr/sbin/modprobe zram
execstart=/bin/sh -c 'echo 2g > /sys/block/zram0/disksize'
execstart=/bin/sh -c 'mkswap /dev/zram0'
execstart=/bin/sh -c 'swapon /dev/zram0'
remainafterexit=yes
[install]
wantedby=multi-user.target

根据你 ubuntu 系统的物理内存大小,在execstart行中调整需要的 zram 大小,一般设置为 ram 大小的 50%-100%。

创建 zram 服务配置文件

3、使用以下命令启动并启用 zram 服务:

sudo systemctl daemon-reload # 重新载入服务配置文件
sudo systemctl enable zram.service # 启用 zram 服务
sudo systemctl start zram.service # 启动 zram 服务

加载并启动 zram 服务

4、启动服务后,通过以下命令,检查 zram 是否处于活动状态并正在使用:

swapon --show

如果看到/dev/zram0设备,表示 zram 正在活动并作为内存交换空间。

检查 zram 活动状态

3.2 查看 zram 内存使用情况

再次使用free命令查看内存使用情况,可以对比启用 zram 之前的可用内存:

free -h

通过这个命令,你可以查看启用 zram 前后,系统可用内存是否有明显增加。

4. 调整 zram 配置(可选)

如果发现系统性能不如预期,可以随时调整 zram 的容量:

1、停止 zram 服务:

sudo systemctl stop zram.service

2、重新编辑zram.service服务配置文件:

sudo vim /etc/systemd/system/zram.service

3、将disksize值更改为你想要的大小,然后再次启动 zram 服务。

sudo systemctl start zram.service

通过以上步骤,你可以在 ubuntu 上轻松配置和使用 zram 内存压缩功能,以提高系统内存利用效率。尤其在内存资源有限的场景,zram 能够延缓系统进入交换(swap)的状态,保持系统的运行效率。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com