未分类 · 2025年5月23日 0

Linux下增加、删除swapfile

在使用Windows的时候我们都会设置虚拟内存用以缓解内存不够的情况。同样的,在使用Linux服务器时如果内存不够充足,也可以设置虚拟内存,在Linux中叫做交换空间。

先检查一下系统里有没有已有的 Swap文件:

swapon -s

如果有的话则会列出已有的交换空间(包含交换分区和交换文件)。如果返回的信息是空,则表示 Swap 文件不存在。

创建 Swap 文件,并设置权限

使用 fallocate 为 swap 文件预分配空间:

fallocate -l 2G /swapfile

如果 fallocate 分配空间不成功的话,可以用 dd 命令代替:

dd if=/dev/zero of=/swapfile bs=1M count=2048

参数说明:

  • if=input file:输入文件名,缺省为标准输入。即指定源文件。
  • of=output file:输出文件名,缺省为标准输出。即指定目的文件。
  • bs=bytes:同时设置读入 / 输出的块大小为 bytes 个字节,取为 1024。
  • count=blocks:拷贝的块数,块大小等于 bs 指定的字节数。将前面算出的数字填入即可。

分配空间后,需要赋予 Swap 文件适当的权限:

chown root:root /swapfile
chmod 0600 /swapfile

初始化并启用

创建好 Swap 文件,还需要格式化后才能使用。

mkswap /swapfile
swapon /swapfile

此时swapfile已经生效了。但重启后还是原样。所以需要设置自动挂载 Swap。

修改 fstab 配置。用 nano或其他文本编辑工具打开/etc/fstab文件,在其最后添加如下一行:

/swapfile none swap sw 0 0

检查swapfile是否生效

swapon -s

将会列出在用的swapfile和大小,使用情况。

删除 swap文件

如果不需要或者其他什么原因想删除swapfile,只需要修改/etc/fstab文件,删除/swapfile这一行。卸载已挂载的swapfile,删除即可。

swapoff /swapfile
rm -rf /swapfile

有同学会问了。如果我想调整swapfile文件大小的话呢?

也简单,简单提示下,不写具体命令了:
卸载文件,删除原有swapfile文件(如果是扩大,不删除也可以。缩小则必须要先删除。)
然后从头开始操作即可。注意fstab文件如果以前改过就不要再改了。