如何在Linux系统中增加swap空间
1. 前言
本文主要讲解如何在Linux系统上创建swap空间。

如何为Linux系统增加swap空间
swap空间是硬盘上的一个文件或分区,Linux操作系统用它来虚拟内存。当操作系统检测到物理内存已满,需要更多的内存才能正常运行应用程序时,它会使用swap空间并在里面存读数据。一般来说,swap是硬盘的一部分,用来扩展内存容量。Windows系统也有这样的机制,它叫页面文件。在Windows属性里可以设置大小,不过Windows系统页面文件只能基于文件,而Linux的swap空间可以基于文件,也可以基于分区。
如果没有swap空间,容易导致运行的程序崩溃。在这种情况下,设置swap空间是最好最简单的解决方法。
2. 为Linux系统增加swap空间

为Linux系统增加swap空间
按照以下步骤在您的Linux系统上创建并启用swap空间:
2.1 检查当前swap空间使用情况
执行以下命令检查当前是否有swap空间:
sudo swapon -s
如果没有任何信息输出,即可证明当前没有设置swap。
如果swap设置正确,可以看到以下输出。
文件名 类型 大小 已用 权限
/swapfile file 2097148 109556 -2

检查当前swap空间使用情况
当然,你也可以使用free命令检查当前的swap使用情况:
free -m

使用free命令检查swap空间状态
2.2 创建swap文件
前面说过,Linux系统支持文件或者分区作为swap空间。目前最方便的方法是创建一个swap文件,而不是分区。在创建swap文件之前,请确保磁盘上有足够的空闲空间。一般来说,建议swap应该等于物理内存的2倍。
接下来创建swap文件,我以2G为例。
sudo fallocate -l 2G /swapfile
chmod 600 /swapfile
通过运行以下命令,使其转换格式并挂载到Linux系统中:
sudo mkswap /swapfile
sudo swapon /swapfile
2.3 设置开机自动挂载
执行上面的命令后,swap已被添加到您的系统中,操作系统在需要时会自动调用它。但重启后系统交换失效。
通过在/etc/fstab文件中附加以下内容,可以使其开机自动挂载。使用文本编辑器编辑fstab文件:
sudo vim /etc/fstab
在文件的最后增加以下内容:
/swapfile none swap sw 0 0
保存退出,下次重启服务器时会自动挂载。
2.4 检查swap空间
执行以下命令检查swap空间:
sudo swapon -s
free -m

检查swap空间
3. 更新Swappiness参数
接下来需要修改swappiness内核参数。它告诉Linux系统使用这个swap空间的频率。
编辑文件/etc/sysctl.conf
sudo vim /etc/sysctl.conf
在最后插入一行:
vm.swappiness=10
现在重载sysctl的配置文件:
sudo sysctl -p