在 Debian 上动态增长交换文件

rub*_*o77 13 linux swap

我知道如何创建交换文件并将其用作交换。但是我必须事先配置文件的大小,磁盘上的空间是否使用,是否使用交换。

如何创建初始大小为 0 并按需增长的交换?

rub*_*o77 15

SwapSpace是一种创建“动态交换文件”的实用程序,该文件根据操作系统的要求改变其大小。

所以你甚至可以忘记创建一个虚拟交换文件,只需安装“SwapSpace”,它就会自动为你创建一个,甚至在必要时调整它的大小。

您还可以将“Swapspace”与手动创建的交换文件并排使用,当手动创建的交换文件被填满时,“Swapspace”将自动为操作系统创建另一个,因此操作系统将始终具有交换空间并增强稳定性。

关于“SwapSpace”的另一个有用的事情是,只要有可能,它就会减少 SwapSpace 的大小并将这些字节“释放”到用户文件系统中,据开发人员称,这种减少也有助于提高交换文件的性能(加上您的“宝贵”硬盘空间也不会浪费)。

安装

sudo apt-get install swapspace
Run Code Online (Sandbox Code Playgroud)

并根据您的需要调整配置文件。我0在只有 8GB 硬盘的 VM debian 机器上设置了最小值


此外,我还将swappiness设置0为最小化VM上宝贵硬盘空间的使用:

要更改系统 swappiness 值,请/etc/sysctl.conf以 root身份打开。然后,将此行更改或添加到文件中:

vm.swappiness = 0
Run Code Online (Sandbox Code Playgroud)

(重新启动以使更改生效)


小智 6

交换空间陈旧且缺乏维护,有一天可能会导致现代系统出现问题。我认为动态交换的最佳解决方案是:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable
Run Code Online (Sandbox Code Playgroud)

然后设置CONF_SWAPFACTOR=2/etc/dphys-swapfile最后

sudo service dphys-swapfile start
Run Code Online (Sandbox Code Playgroud)

  • 这不会动态管理交换,它只是在服务启动时添加一次交换 (2认同)