linux系统创建交换文件(swapfile)

查看交换空间大小

1
2
3
4
# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       699Mi       465Mi       3.0Mi       694Mi       1.0Gi
Swap:         2.0Gi       885Mi       1.1Gi

如果没有设置交换空间,则Swap显示为0

swapon命令查看交换空间类型,partition:在单独的分区上,file:是文件

1
2
3
# swapon --show
NAME      TYPE SIZE   USED PRIO
/swapfile file   2G 884.4M   -2

如果没有设置交换空间,则没有显示。

查看文件大小和权限

1
2
# ll -ht /swapfile
-rw------- 1 root root 2.0G Dec  4  2020 /swapfile

创建交换文件

  • 第一步:
1
2
dd if=/dev/zero of=/swapfile bs=1M count=16384 status=progress 
#其中这个16384是指创建16G=(16384*1M)的交换空间,交换空间的大小一般是物理内存的1-2倍

或者使用fallocate创建

1
sudo fallocate -l 1G /swapfile
  • 第二步启动交换空间:

只有root用户才能读取和写入交换文件,需要设置正确的权限

1
2
3
chmod 600 /swapfile #设置正确的权限
mkswap /swapfile #格式化swap文件
swapon /swapfile #启用swap文件
  • 第三步:

使更改永久生效,修改/etc/fstab

1
2
3
#最后,向/etc/fstab 中追加如下内容:
vim /etc/fstab
/swapfile none swap defaults 0 0

参考