Linux:处理器释放内存

大家好!我是大聪明-PLUS

为了什么?

如果你突然发现你的电脑内存条是焊接在主板上的,或者所有插槽都已使用,或者根本没有办法添加另一根内存条,那么有一个简单的解决方案叫做zram

我不会详细介绍zRAM 的所有优点;网上有很多关于它是什么以及如何使用它的信息。在这里,我想提供一个简短的指南,介绍如何快速轻松地为常用操作系统添加更多内存。

这是什么?

很多人都知道交换文件,它会在内存不足时启用。和很多人一样,我也想摆脱它,因为交换文件会占用我们的固态硬盘/机械硬盘来存储数据,这本身就有很多缺点:

  • 读写速度慢

  • 耗尽磁盘资源

但是,如果我们关闭交换分区,一旦物理内存耗尽,我们就有可能出现系统冻结的情况,因为内存不会凭空出现......或者会吗?!

ZRAM是一种内存压缩技术。它本质上与交换空间相同,只是它位于内存中,并应用了压缩算法。当然,这种技术会占用处理器时间,所以最好使用处理器而不是内存加速器。

我们正在这样做

整个过程包括禁用交换分区和 zswap,然后安装并配置zram。我的系统是 Ubuntu 22.04。

  1. 禁用交换
复制代码
`sudo swapoff /swapfile`
  1. 禁用交换分区创建。为此,请注释掉*/etc/fstab文件中的相应行。*
复制代码
`sudo nano /etc/fstab

#/swapfile    none    swap    sw    0    0`

禁用交换文件

  1. 我们删除了存储交换分区的不再需要的文件。
复制代码
`sudo rm -f /swapfile`
  1. 如果启用了 zswap,我们需要将其禁用。为此,请修改*/etc/default/grub文件中的相应行。*
复制代码
`sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX=""

на

GRUB_CMDLINE_LINUX="zswap.enabled=0`
  1. 安装zram
复制代码
`sudo apt install zram-tools`
  1. zram已经可以工作了,但是只有大约 200 MB,我们需要对其进行配置:
复制代码
`sudo nano /etc/default/zramswap`

zram 配置

在我的配置版本中,我安装了另一种压缩算法(zstd)。如果处理器性能不足,您可以尝试要求较低的lz4算法。

zRAM 的 大小可以指定为相对于物理内存大小的百分比**(PERCENT** ),也可以指定为绝对值**(SIZE**)。在我的例子中,它是物理内存大小的 99%。

  1. 更改配置后,只需重启zram即可。
复制代码
`sudo systemctl restart zramswap.service`

团队将帮助我们确保一切都按预期进行。

复制代码
`zramctl`

如您所见,压缩效果非常好~4倍

我怀疑这个方案的实用性取决于你具体处理的是什么。就我而言,我处理的是代码,所有数据都能很好地压缩。但是,如果你处理的是图形,zram 的效果可能就没那么好了。

相关推荐
zx_7414848117 分钟前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS29 分钟前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿40 分钟前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
金士顿1 小时前
ASP.NET Core Native AOT 到底是什么?从 C#、IL、JIT 一直讲到 Linux ARM64 ELF
嵌入式·asp.net core
做运维的阿瑞2 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
百万蹄蹄向前冲2 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql
彧azz2 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
susplus3 小时前
【ARM 裸机开发 (IMX6ULL-mini)】GNU工具、Makefile 工程构建、链接脚本详解|C 语言点灯 + 蜂鸣器驱动
linux·arm·makefile·imx6ull
Shadow(⊙o⊙)3 小时前
Linux进阶知识1.0
linux·运维·服务器
>Andre<4 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件