Ubuntu设置Swap分区

Swap分区在Ubuntu系统中的作用主要是在物理内存不够用的时候,将硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。这些被释放的空间可能来自一些很长时间没有什么操作的程序,它们被临时保存到Swap分区中,等到这些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

在设置Swap分区的大小时,实际上并不取决于物理内存的量,而是取决于系统中的内存负荷。因此在安装Ubuntu系统时,需要根据具体的业务来设置SWAP的值。一般来说,可以按照如下规则设置Swap大小:4G以内的物理内存,SWAP 设置为内存的2倍;4-8G的物理内存,SWAP 等于内存大小;8-64G 的物理内存,SWAP 设置为8G;64-256G物理内存,SWAP 设置为16G。

设置Swap分区

1. 查看当前的分区情况:
1
2
free -m  # 命令查看内存情况和swap分区大小 
df -h # 查看磁盘空间大小
2. 创建 swap 文件:

  如果你没有未分配的磁盘空间,你可以创建一个 swap 文件。首先,使用以下命令创建一个用于 swap 的文件:

1
sudo fallocate -l 2G /swapfile
3. 设置文件权限:

  设置 swap 文件的权限,以确保只有 root 用户可以读写该文件:

1
sudo chmod 600 /swapfile
4. 将文件设置为 swap 文件:
1
sudo mkswap /swapfile
5. 启用 swap 文件
1
sudo swapon /swapfile

  如果想要永久启用 swap 文件,需要在 /etc/fstab 文件中添加一行,重启系统生效:

1
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
6. 验证 swap 分区:
1
2
sudo swapon --show
free -m
7. 取消临时启用的 Swap 分区:
1
sudo swapoff -v /swapfile

  如果还希望永久删除 swap 分区,则可以删除 swap 文件,并删除 /etc/fstab 文件中 swap 分区的相关条目。

如果要调整交换文件的大小为4G:

调整Swap分区大小

  1. 首先使用上面的第7步取消启用的 Swap 分区
  2. 然后使用 ftruncate 命令截断交换文件的大小。例如运行以下命令以将 /swapfile 文件的大小调整为 4G
1
sudo ftruncate -s 4G /swapfile
  1. 最后使用面的第4-5步启用 Swap 分区