云网牛站
所在位置:首页 > Linux教程 > 在Linux系统中启用Zswap的方法,以减少Linux磁盘抖动

在Linux系统中启用Zswap的方法,以减少Linux磁盘抖动

2019-07-08 10:00:27作者:SySgeek稿源:系统极客站

本文介绍在 Linux 操作系统中启用 Zswap 的方法,支持 Debian、Ubuntu、Fedora、OpenSUSE、Arch Linux 等主流版本,能进一步的减少 Linux 磁盘抖动,以下是详细介绍。

 

前言

随着操作系统的不断更新和迭代,也反向推动了用户对计算机硬件的不断升级。例如,从 Windows XP 之后的 Windows Vista 系统开始,不配置个 4GB 内存,就很难运行顺畅。但作为 Linux 用户,很多用户则喜欢使用老旧的计算机或者笔记本来运行,而许多 Linux 发行版本在小内存计算机上也可以运行流畅。

但随着 Linux 系统的不断更新,浏览器应用反而成了吃内存大户。例如采用 LXDE 桌面环境的 Linux 系统在启动后只需占用约 150MB 的内存,但在 Chromium、Chrome 或 Firefox 中多打开几个标签时,内存就会迅速消耗几百 MB 甚至数 GB,当内存占用光后,机械硬盘转动就会越加频繁,Linux 系统中的音乐播放甚至会出现卡顿,应用程序切换也会有严重的延迟,有可能连移动鼠标都会有延迟,而这一切都是受磁盘抖动的影响而造成的结果。

 

磁盘抖动的介绍

首先需要了解什么是 SWAP 交换分区(参考:在Ubuntu 18.04系统中增加和删除SWAP交换分区的方法),在 Linux 系统中,当空闲内存消耗光时,操作系统长时间不访问的应用程序数据会被移动到 SWAP 交换区域,而 SWAP 交换分区通常存储在物理硬盘上。通过这样的机制,Linux 系统就可以释放出一些物理内存空间提供给需要的应用程序。

这样一来,用户在过去一断时间未访问的浏览器标签页就可能会被挪动到 SWAP 交换分区(即物理硬盘)当中,只有当用户切换回该标签时,Linux 才会将其从 SWAP 交换回物理内存当中。

当 SWAP 和物理内存之间的数据交换量较少时,此机制非常有效。但如果你的 Linux PC 只有 2GB 内存,打开的(所有)应用程序需要 4GB 内存时,Linux 就会在物理内存和 SWAP 之间不断交换数据。而物理硬盘的速度相较物理内存来说,速度是极其慢的,在这种情况下,存储设备基本上都无法满足更快的交换请求。也就是说,当磁盘抖动发生时,Linux 中的所有操作都会变得非常迟缓和卡顿。

1、SSD非常适合SWAP分区

此前网上曾有一句名言,大意是永远不要在 SSD 磁盘上分配 SWAP 分区,它会干掉你的存储设备。这句话在几年前算是至理,而现在却有所不同了。

实际上,在 SSD 磁盘上设置 SWAP 交换分区会有非常好的效果。如果你的计算机上配置有良好随机读/写性能(至少300MB)的 SSD 设备,你可以在其上配置 SWAP 分区,并直接忽略掉后文了。

2、如何显着减少Linux上的磁盘抖动

存储在 RAM 中的大多数数据其实都是可以压缩的,这意味着如果我们将 200MB 的数据存储在内存中并对其进行压缩,甚至可以将大小减小到 100MB。这意味着,数据交换时 Linux 只须将更少的数据量写入到磁盘当中。

我们介绍的 Zswap 工具比较复杂,它能够智能地仅向磁盘发送无法压缩的位和片段,而将其余部分保存在内存的保留部分中。

 

在基于Debian和Ubuntu的发行版中启用Zswap

1、打开终端——使用 vi 或 sudoedit 编辑 Grub 引导加载程序:

vi /etc/default/grub

2、在 GRUB_CMDLINE_LINUX_DEFAULT 行的引号内容中追加 zswap.enabled=1

在Linux系统中启用Zswap的方法,以减少Linux磁盘抖动

3、编辑完成后,执行 sudo update-grub 命令以生新的 Grub 配置文件。

在Linux系统中启用Zswap的方法,以减少Linux磁盘抖动

4、重启系统后 zswap 模块将自动启用。

 

在基于Fedora和OpenSUSE的发行版中启用Zswap

1、打开系统终端——使用 vi 或 sudoedit 编辑 Grub 引导加载程序:

sudoedit /etc/default/grub

在Linux系统中启用Zswap的方法,以减少Linux磁盘抖动

2、在 GRUB_CMDLINE_LINUX 行的引号内容中追加 zswap.enabled=1

3、根据您的计算机是从 BIOS 还是 UEFI 系统引导,Grub 配置文件是在不同的路径中生成的。要查找当前所在的位置,请执行以下命令:

sudo find /boot/ -name grub.cfg

在Linux系统中启用Zswap的方法,以减少Linux磁盘抖动

4、根据上一条命令的输出来执行以下命令:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

5、重启计算机后,执行以下命令来验证 zswap 是否处于激活状态:

cat /sys/module/zswap/parameters/enabled

如果输出为 Y,则模块正常工作。

 

在Arch Linux中如何启用Zswap

1、在终端中执行以下命令安装 systemd-swap 包:

sudo pacman -Sy systemd-swap

在Linux系统中启用Zswap的方法,以减少Linux磁盘抖动

2、执行以下命令启动 systemd-swap 并让其随时系统启动:

sudo systemctl start systemd-swap

sudo systemctl enable systemd-swap

3、执行以下命令验证 zswap 模块是否已启用:

cat /sys/module/zswap/parameters/enabled

在Linux系统中启用Zswap的方法,以减少Linux磁盘抖动

如果输出为 Y,则模块正常工作,表示启用 Zswap 的操作已完成。

 

相关主题

Deepin默认对4G内存以上的机器不启用swap,附开启方法

精选文章
热门文章