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

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

    相关文章:

  • OrcaFex11.5
  • 多语言笔记系列:Polyglot Notebooks 中使用扩展库
  • Unity 游戏数量单位换算(K/M/B/T)
  • 雅思阅读--易错词汇60个
  • 38.前端代码拆分
  • 软考-软件设计师中级备考 13、刷题 数据结构
  • aws平台windows虚拟机扩容
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 8 |产品化与运维:批量标定、误差监控、OTA 升级与安全防护
  • C语言编程--递归程序--求数组的最大元素值
  • Java后端开发day42--IO流(二)--字符集字符流
  • 2025年渗透测试面试题总结-某战队红队实习面经(附回答)(题目+回答)
  • Nmap 工具的详细使用教程
  • 《Python星球日记》第34天:Web 安全基础
  • 前端流行框架Vue3教程:13. 组件传递数据_Props
  • 今年我国已发生三级以上地震318次
  • 在 Win11 下安装 Wireshark 的详细步骤
  • 深入浅出iOS性能优化:打造极致用户体验的实战指南
  • 餐饮加盟店如何通过日事清全流程闭环管理实现进度同步与效率升级?
  • Java学习手册:Base64 编码概念和应用场景
  • python校园二手交易管理系统-闲置物品交易系统
  • 华为招聘:未与任何第三方开展过任何形式的实习合作
  • 4月深圳新房、二手房成交同比均上涨,“5月有望延续积极向好的发展态势”
  • “子宫内膜异位症”相关论文男性患者样本超六成?福建省人民医院发布情况说明
  • 多地政府机关食堂迎来大客流,重庆荣昌区委书记给厨师们鼓劲
  • 人民日报和音:引领新时代中俄关系坚毅前行
  • 蓝佛安主持东盟与中日韩财长和央行行长系列会议并举行多场双边会见