当前位置: 首页 > backend >正文

Linux 更改内存交换 swap 为 zram 压缩,减小磁盘写入

1、查看当前 swap 的方式

swapon --show

我这里是默认的 swap 文件,大小为 2G。

2、安装 zram

Ubuntu 下:

sudo apt install zram-tools

安装后默认会启动:

3、关闭默认的 swap 文件

sudo swapoff /swapfile

其次是关闭 /etc/fstab 中的 /swapfile(下图最后一行):

这一步只是优化,不关闭也没影响。

4、配置 zram

该文件安装 zram 后默认会生成,根据个人喜好选择编辑器,我习惯 vi:

sudo vi /etc/default/zramswap

可以根据个人情况,修改以下几个参数:

# 压缩算法
ALGO=lz4 
# 定义 zram 设备占用的最大内存空间(如 50% 内存)
PERCENT=20%
# swap 优先级(越高越优先使用)
PRIORITY=100

    ALGO:

    speed: lz4 > zstd > lzo
    compression: zstd > lzo > lz4

    lz4 为大多数场景的最佳选择。

    PERCENT:

    • ​内存 ≤ 4GB​​:建议 PERCENT=50%~100%(激进交换)。
    • ​内存 4~8GB​​:建议 PERCENT=25%~50%
    • ​内存 > 8GB​​:可设为 10%~25%(zram 主要用于临时突发负载)。
    • ​警告​​:过度分配可能导致 OOM(内存耗尽),尤其在低内存设备上。

    PRIORITY:

    • 通常为 0~32767,默认磁盘 swap 优先级为 -2
    • ​推荐值​​:PRIORITY=100(确保 zram 优先于磁盘)。

    5、重启 zram 服务

    sudo systemctl restart zramswap.service  # 重启服务生效

    如果遇到重启失败报错,提示设备或资源忙:

    zramswap.service - Linux zramswap setupLoaded: loaded (/lib/systemd/system/zramswap.service; enabled; vendor preset: enabled)Active: failed (Result: exit-code) since Tue 2025-05-06 20:13:21 CST; 16s agoDocs: man:zramswap(8)Process: 5786 ExecStart=/usr/sbin/zramswap start (code=exited, status=1/FAILURE)Main PID: 5786 (code=exited, status=1/FAILURE)CPU: 15ms5月 06 20:13:21 systemd[1]: Starting Linux zramswap setup...
    5月 06 20:13:21 root[5787]: Starting Zram
    5月 06 20:13:21 zramswap[5787]: <13>May  6 20:13:21 root: Starting Zram
    5月 06 20:13:21 zramswap[5786]: /usr/sbin/zramswap: 第 53 行: echo: 写入错误:设备或资源忙
    5月 06 20:13:21 systemd[1]: zramswap.service: Main process exited, code=exited, status=1/FAILURE
    5月 06 20:13:21 systemd[1]: zramswap.service: Failed with result 'exit-code'.
    5月 06 20:13:21 systemd[1]: Failed to start Linux zramswap setup.

    需要手动关闭 zram:

    # 停止所有 swap 并卸载 zram 模块
    sudo swapoff -a
    sudo modprobe -r zram 2>/dev/null || true
    sudo rm -f /dev/zram*# 确保内核模块干净加载
    sudo modprobe zram num_devices=1

    重新启动服务即可:

    sudo systemctl restart zramswap.service

    http://www.xdnf.cn/news/4235.html

    相关文章:

  • Android学习总结之Java和kotlin区别
  • Listremove数据时报错:Caused by: java.lang.UnsupportedOperationException
  • 深度解读 ARM 全新白皮书——《重塑硅基:AI 时代的新基石》
  • RabbitMQ-api开发
  • 美团Java高级配送员面经分享|玩梗版
  • Python实例题:高德API+Python解决租房问题
  • Spring Web MVC————入门(1)
  • 15.Spring Security对Actuator进行访问控制
  • 2025年北京市职工职业技能大赛第六届信息通信行业网络安全技能大赛初赛-wp
  • OpenGl实战笔记(2)基于qt5.15.2+mingw64+opengl实现纹理贴图
  • Mysql order by 用法
  • 国标GB28181视频平台EasyCVR安防系统部署知识:如何解决异地监控集中管理和组网问题
  • Latex排版问题:图片单独占据一页
  • 极狐GitLab 如何将项目共享给群组?
  • k倍区间--线段树60/map+思维100
  • ​​6 .数据库规范化与关系理论复习大纲​
  • 64.微服务保姆教程 (七) RocketMQ--分布式消息中间件
  • 常见汇编代码及其指定
  • MySQL 8.0 深度优化:从索引革命到事务增强
  • C语言结构体内存对齐使用场景
  • 飞牛云如何开启及使用ssh:小白用户上手指南-家庭云计算专家
  • Laravel 12 基于 EMQX 实现 MQTT 消息发送与接收
  • 电商数据接口开发进阶:京东 API 实时商品信息采集技术解析​
  • 通过 ModernBERT 实现零样本分类的性能提升
  • Nginx 安全防护与HTTPS部署
  • Super VLAN配置
  • Ubuntu 系统中解决 Firefox 中文显示乱码的完整指南
  • 荣耀A8互动娱乐组件部署实录(第3部分:控制端结构与房间通信协议)
  • 机器学习例题——预测facebook签到位置(K近邻算法)和葡萄酒质量预测(线性回归)
  • 数字传播生态中开源链动模式与智能技术协同驱动的品牌认知重构研究——基于“开源链动2+1模式+AI智能名片+S2B2C商城小程序”的场景化传播实践