![Debian 上动态增长的交换文件](https://linux22.com/image/37516/Debian%20%E4%B8%8A%E5%8A%A8%E6%80%81%E5%A2%9E%E9%95%BF%E7%9A%84%E4%BA%A4%E6%8D%A2%E6%96%87%E4%BB%B6.png)
我知道如何创建交换文件并将其用作交换。但我必须事先配置文件的大小,以及无论是否使用交换,都会使用磁盘上的空间。
如何创建初始大小为 0 且按需增长的交换?
答案1
交换空间是一个创建“动态交换文件”的实用程序,该文件根据操作系统的要求更改其大小。
因此,您甚至可以忘记创建虚拟交换文件,只需安装“SwapSpace”,它就会自动为您创建一个虚拟交换文件,甚至在必要时调整它的大小。
您还可以将“交换空间”与手动创建的交换文件并排使用,当手动交换文件被填满时,“交换空间”将自动为操作系统创建另一个交换空间,这样操作系统将始终拥有一个交换空间,从而增强了稳定性。
关于“SwapSpace”的另一个有用的事情是,只要有可能,它就会减少 SwapSpace 的大小并将这些字节“释放”到用户文件系统中,根据开发人员的说法,这种减少也有助于提高交换文件的性能(而且您的“宝贵”硬盘空间也没有被浪费)。
安装与
sudo apt-get install swapspace
并根据您的需要调整配置文件。我在我的 VM debian 机器上将最小值设置0
为只有 8GB HDD
另外我还设置了交换性最大限度地0
减少虚拟机上宝贵的 HDD 空间的使用:
要更改系统交换值,请/etc/sysctl.conf
以 root 身份打开。然后,更改或添加此行到文件中:
vm.swappiness = 0
跑步
systemctl restart systemd-sysctl.service --system
激活
答案2
交换空间陈旧且缺乏维护,有一天可能会导致现代系统出现问题。我认为动态交换的最佳解决方案是:
sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable
然后设置CONF_SWAPFACTOR=2
,/etc/dphys-swapfile
最后
sudo service dphys-swapfile start
答案3
Afaik,例如,您使用 fdisk 创建的任何交换分区都需要大于 0 的空间,因为您正在修改现有磁盘的空间并将其重新分配到其他地方。
无论如何,回答你的问题,你可以轻松地创建一个小分区,将其分配为 fdisk 下的交换区,然后:
1) 禁用交换swapoff -v
2) 调整分区大小lvresize
3) 格式化分区mkswap
4) 重新启用交换空间swapon -v
之后,您可以使用它cat /proc/swaps
来检查它是否已升级。您可以根据您的系统规格轻松地在脚本上使用它,并在需要增加交换空间时按需运行它。就像是:
$ swapoff -v /dev/swapvol1
$ lvresize /dev/swapvol1 -L +1G
$ mkswap /dev/swapvol1
$ swapon -v /dev/swapvol1