swap file 能否替代 swap partition ?

打算几天之后彻底从 Windows 迁移到 Linux,之前使用都是分一个swap分区来提供休眠时保存状态及补充内存。但是这几天看到能设置swap file,并且据说不像分区需要占据固定的硬盘空间。不知道swap file能否做到动态使用硬盘空间(不在不需要时占用),并且能够提供休眠功能。由于是第一次完全依赖Linux,请各位道友多多指点。

它这个动态的意思应该是说你调整大小非常方便,而不是说没用的时候大小就为 0。除了性能可能比 swap 分区差一点点(?),功能是一致的。

想要动态调整大小的话你需要:

它的 swapfc 功能可以自动根据当前内存用量按需创建 swapfile

1赞

我的本儿就是用的swapfile。我的用法没有那么动态:电脑上有个8G的swapfile,需要用的时候打开。理论上你不想用的时候可以把这个文件删掉,或者是想用多少你就创建多大的文件。但是这样子也不是很方便,尤其是创建swap文件这个操作印象中是需要一些时间的

1赞

现代的发行可以了。

错误:

如果不使用休眠功能的话可以使用swapfile.

啊这,我想着我的内存比较大不用swap分区,用swap file来休眠呢

难道说分区时不分swap partition会休眠即关机

swapfile 可以用来休眠吧:https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate#Hibernation

1赞

是我孤陋寡闻了,之前使用过一些不是很强大的initramfs,swapfile是不支持的,而且休眠无法恢复的话会锁死BIOS,因为代价太大就再也没试过了。

这几天把Arch弄好了 还没用上systemd-swap 因为不能用来休眠(默认情况下)

https://github.com/Nefelim4ag/systemd-swap/issues/85

但是预申请的swapfile和同等大小的分区作用是一样的(用来休眠,虚拟化,xxx)

我也刚刚把家里的Win10电脑给装了Arch Linux。目前只设置了2G的Swap,是不是太小了?
内存32G,256G SSD。 准备重新安装一下系统,请教下下面的硬盘分配方案是否合理:

  1. EFI 300M
  2. Swap 16G
  3. Root 20G
  4. Home 剩余空间

还是用swap file 更好一些?

不使用休眠的话,32G内存家用,一般不需要配置swap。要使用休眠的话,传统看法还是有多大内存设置多大swap,使用Swap分区还是Swap文件现在都没有问题。

另外,根分区设置大一点,当然也看需要用什么软件。我的根分区给了50GB,实际上使用了32GB,但有时遇到系统bug,或编译一些东西,折腾的时候可能会产生很大的log文件,又会觉得稍微有些紧张。

多谢分享经验。 看来休眠这个功能还是不用了,稍微分几G给swap分区应急吧。多给一些空间给root分区,剩下的存个人文件。

32G内存不需要swap了吧,浪费性能和磁盘空间,除非你需要休眠,或者日常内存超过32G

swap file更灵活,不需要单独分区,swap分区的性能比swap file稍微好一点

但是最高性能还是不需要swap 分区。

1赞

看来真的是没必要用休眠了,不用就干脆关机。 另外问一下,root分区给50G能够用吗?我在windows下使用的时候,C盘吃了我200G,刚安装的时候才30G左右。之前只是在虚拟机用了一段时间Linux,感觉不是很root 不是很吃空间。

archlinux 用swap file的话看着个就可以 https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate#Hibernation 如果内存足够大建议把swappiness调低,性能会好一些 https://wiki.archlinux.org/index.php/Swap#Swappiness

感谢分享。已经安装好了,没有使用swap 分区, 50G 作为root. 只是影响了休眠功能。
还是Linux 用Emacs 爽 :smiley: