如何通过ZRAM内核模块压缩Ubuntu内存? Linux使用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)的状态,保持系统的运行效率。
相关文章
Ubuntu怎么安装Intel NPU驱动? 通过Snap Store轻松搞定
Ubuntu系统中要充分发挥NPU 驱动的作用,除了需要你的 CPU 集成了 NPU 处理单元外,相关软件、工具或应用程序也需支持通过 NPU 来完成 AI 任务2024-10-21Ubuntu 24.04 LTS 怎么安装和卸载Docker?
Docker 是一个免费的开源工具,设计用于在容器中构建、部署和运行应用程序,我们将逐步介绍如何在 Ubuntu 24.04 LTS 上安装 Docker2024-09-14- Java是最受欢迎的编程语言之一,怎么在Ubuntu 24.04 LTS中安装和卸载java呢?详细请看下文介绍2024-09-14
- 在Ubuntu 24.04 LTS上设置固定IP地址可以通过图形界面和命令行两种方式来完成,下面我们就来看看详细的教程2024-09-14
Ubuntu 24.04 LTS和22.04 LTS有什么区别? 安装/界面/新功能等对比
2022 年 4 月发布的 Ubuntu 22.04 LTS 相较于 20.04 LTS 带来了诸多引人注目的创新,下面我们从安装、界面、新功能等来介绍区别2024-09-14怎么隐藏Ubuntu顶部状态栏? Ubuntu不显示屏幕上方状态栏的技巧
在Ubuntu系统中,顶部状态栏包括时间显示、网络连接、电源图标等,我们可能需要隐藏顶部状态栏,详细请看下文介绍2024-09-13Ubuntu24.04LTS怎么配置? 安装Ubuntu 24.04 LTS后的10项基本建议
电脑安装完Ubuntu 24.04 LTS后,为了有更好的体验,可以进行必要设置,下面我们来看看系统安装完成后,有哪些设置工作需要做一下2024-09-02老用户如何就地升级到 Ubuntu 24.04 LTS 桌面版?
Canonical 发布了最新的操作系统 Ubuntu 24.04,代号为 Noble Numbat,这是一个 LTS (长期支持)版本,意味着我们将获得未来 长达 5 年更新和支持,详细请看下文安装教程2024-09-02如何制作ubuntu启动盘? 3招教你轻松创建Ubuntu启动盘教程
今天我们就来介绍如何在 Windows、macOS 和 Ubuntu 系统中,制作 Ubuntu 启动盘的几种简单方法,都很简单,详细请看下文介绍2024-09-02Ubuntu 24.04 LTS中窗口平铺怎么用? 从入门到进阶攻略
窗口平铺在windows中很常用,那么Ubuntu 24.04 LTS系统中怎么充分使用这个功能呢?详细请看下文介绍2024-08-31
最新评论