Ubuntu调整Swap分区大小
Ubuntu Swap 分区
Swap 分区指的就是 linux 的交换分区
Swap 分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到 Swap 分区中,等到那些程序要运行时,再从 Swap 分区中恢复保存的数据到内存中。
Ubuntu 安装后,默认的 Swap 分区容量是 2GB,在编译代码时存在交换分区容量不足,导致编译失败的情况,下面展示了调整 Swap 分区大小到 8G 的过程。
调整 Swap 分区大小
1.首先用 ssh 连接上 Ubuntu 服务器
查看内存分区大小可以用 free -m
或 free -h
命令
1 | root@zhao:~# free -h |
这里可以看到 Swap 分区大小为 3.8G
2.关闭 Swap 分区
先查找 Swap文件
的位置
1 | root@zhao:~# swapon --show |
可见位置在根目录下,这时我们关闭 Swap 分区,然后再看内存分区大小
1 | root@zhao:~# swapoff /swap.img |
3.调整/swap.img 到 8GB,并格式化
1 | root@zhao:~# fallocate -l 8G /swap.img |
4.启用 Swap 分区,再查看内存分区大小
1 | root@zhao:~# swapon /swap.img |
此时,Swap 已经成功更改为 8G
5.持久化(如果重启后丢失更改)(可选)
你可以通过将新创建的交换文件添加到 /etc/fstab
文件来使更改持久化。
注意:对 /etc/fstab
文件进行任何更改之前,最好先进行备份。
root@zhao:~# cp /etc/fstab /etc/fstab.bak
首先先打开 /etc/fstab
文件,这里可以用 vim
来操作
root@zhao:~# vim /etc/fstab
将 /swap.img none swap sw 0 0
添加到 /etc/fstab
文件的末尾
当然也可以用以下命令一键添加
echo '/swap.img none swap sw 0 0' | sudo tee -a /etc/fstab
现在一切都准备好了。即使在重新启动你的 Linux 系统后,你的交换文件也会被使用。
6.调整 swappiness 参数(可选)
swappiness 参数决定了交换空间的使用频率。swappiness 值的范围从 0 到 100。较高的值意味着交换空间将被更频繁地使用。Ubuntu 系统默认的 swappiness 是 60。
你可以使用以下命令检查 swappiness 的值
root@VM-4-13-ubuntu:~# cat /proc/sys/vm/swappiness
60
你可以使用以下系统命令动态更改 swappiness 的值
1 | root@zhao:~# sysctl vm.swappiness=80 |
这种改变只是暂时的。如果要使其永久化,可以编辑 /etc/sysctl.conf
文件,并在文件末尾添加 swappiness 值:
vm.swappiness=25