以防你还不知道如何在Linux上分配SWAP/交换空间

本教程为新手向~

演示系统为Deepin20.9社区版,理论上所有基于Debian的Linux发行版可以通用所有命令

在 Deepin 系统中,Swap 文件是一种虚拟内存机制,用于在物理内存不足时,将部分数据从内存交换到磁盘空间,从而避免系统因内存耗尽而崩溃。Swap 文件的配置和管理对系统的稳定性和性能至关重要。

类似于Windows里的pagefile.sys,Deepin中的Swap需要用户自行分配。在安装时会建议选择一个分区作为Swap分区,程序会自动执行

但是如果忘记了/分少了(比如我只随便分了16M,其实是Windows留的恢复分区)

就需要在命令行里重新分配

但是分区一定程度上要动数据区,所以另一种方法就是分配Swap File,以文件形式存在

建议把Swap File扔在系统分区下,命令行可以照抄

虽然32GB RAM下官方建议不分配Swap(物理内存已经够用了),但是在开虚拟机或者多开软件游戏的时候就需要Swap了

以下操作需要sudo权限运行,请使用系统管理员账户登录

第一步,创建一个XGB的swap文件

sudo fallocate -l XG /swapfile(X替换为需要的大小)

sudo chmod 600 /swapfile(设置权限,仅root用户可访问)

第二步,格式化为 Swap 类型

sudo mkswap /swapfile

第三步,启用 Swap 文件

sudo swapon /swapfile

并且确保系统启动时自动启用

echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

很好,现在已经完成了Swap文件的创建了,但是Swap作为虚拟内存,系统需要判断何时调用Swap,就要借助swappiness参数,参数值为10-100,数字越大,越优先调用Swap(默认为60)

先查看swappiness的值

cat /proc/sys/vm/swappiness

再设置 swappiness 值(将下面的所有“10”改为需要的值)

echo 10 | sudo tee /proc/sys/vm/swappiness

这里设置为70

随后把swapiness写入配置文件

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

Section image

值越高表示内核越积极使用 Swap,值越低表示优先使用物理内存

保存工作,重启

查看是否使用swap

sudo swapon --show

Section image

尝试多开几个软件吃满内存,查看swap是否被调用

Section image

如图所示就是Swap被调用的情况了

希望本文能对你有所帮助~