Swap 扩容
Contents
先前安装系统的时候,swap 分区给小了(机器内存的一半)。我的笔记本内存 8G,swap 给了 4G,当系统已用内存超过 4G,会导致无法休眠。如果 swap 给的和本机内存一样大,那么就不会存在 swap 放不下当前工作镜像的问题。但重新分区追加 swap 显然不现实,所以只能让两块 swap 拼凑一下,达到总体有 8G 可用 swap 的效果。
像我之前,每当要休眠的时候,都要清一下系统内存,保证已用内存在 4G 以下再休眠。十分繁琐。现在的我建议,swap 分区至少和机器内存相当。
无论是新建一块 swap 分区,抑或是创建一个 swapfile,都能达到上述效果。下面介绍一下如何创建一个 swapfile 作为追加 swap 使用。
当前,本机 swap 只有 4G:
|
|
创建一个 swapfile:
|
|
这样一来,就完成了 swap 扩容。但是,你会发现上述工作每次重启都会丢失,所以还要将 swapfile 写进 fstab,保证每次启动都会加载这块 swap.
|
|
另,使用swapon -p <priority> <swap_partition>
为指定 swap 分区设置优先级。
2024-01-28 更新:注意,上述 swap 分区的优先级必须使用正数才有效果,负数是内核专用(在这里相当于没设)。参考这里。我现在的设置是:
# extra swapfile, prefer use this swap file, as the swap partition is used for hibernation
/home/yychi/EXTRA/swapfile none swap defaults,pri=2 0 0
# /dev/nvme0n1p7
UUID=4227170f-0a4f-4a8e-a4fd-0d91f46f54af none swap defaults,pri=1 0 0
数值越大,优先级越高。