在Debian上动态增长交换文件


10

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

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


@吉尔斯:我只是好奇-为什么您编辑标题(除了错字)?是否不希望在这里有完整的发音问题?
rubo77 2014年

1
最好避免使用无用的单词,尤其是在人们最关注的标题开头。请参阅我如何写一个好标题?。“动态增长的交换”给出了基本思想。“如何创建”并没有开始表明问题所在。有些人更愿意提出问题标题的问题,因为它们是问题,但这是愚蠢的原因:标题也是答案的标题。
吉尔(Gilles)“所以,别再邪恶了”

Answers:



10

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

因此,您甚至可以忘记创建虚拟交换文件,而只需安装“ SwapSpace”,它将自动为您创建一个,甚至在必要时调整其大小。

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

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

用安装

sudo apt-get install swapspace

并根据您的需要调整配置文件。我0在只有8GB HDD的VM Debian机器上将最小值设置为


另外,我还将交换性设置0为最大程度地减少虚拟机上宝贵的HDD空间的使用:

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

vm.swappiness = 0

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


这将不支持swsusp / suspending交换文件,除非创建的交换文件的大小已经足够大到可以包含RAM转储。
soze

那么,如何确保交换文件足够大以容纳ram?
rubo77

有一个固定大小的交换文件要挂起,大小为RAM大小,然后使用swapspace进行动态大小的交换
Tom Hale

它为我工作。这对于小型SSD磁盘超级有用。
阿德里安·洛佩兹

0

Afaik,例如,您将使用fdisk创建的任何交换分区,都将需要大于0的任何空间,因为您正在修改现有磁盘的空间并将其重新分配到其他地方。

无论如何,回答您的问题,您可以轻松地创建一个小分区,将其分配为fdisk下的swap,然后:

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

1
这不能回答问题,因为交换大小是手动更改的,而不是按需更改的。此外,调整LV的大小没有用:您在哪里找到增长的空间?收缩时释放的空间如何不被浪费?该问题询问有关交换文件的信息,该文件解决了可用空间的问题-它可用于其他文件。
吉尔(Gilles)'所以

按需更改交换大小是一个好主意,但是交换空间并不涵盖swsusp用于支持休眠的情况。我相信对于需要休眠支持的用户来说,这个答案可能更为理智。当然,直到swapspace处理得更好。
soze
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.