ubuntu设置swap step by step

在服务器中通过free -h可以看到有一个叫做swap的东西,这是服务器用硬盘制作的交换空间。在服务器内存不够时,将会使用这部分空间,但是如果swap空间不足很容易导致被使用的swap占swap总量变大,将会导致系统速度变慢。

步骤一:检查系统中的swap

sudo swapon --show
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 16G 111.8M -2

我们也可以使用free查看总的Swap大小

free -h
total used free shared buff/cache available
Mem: 125G 1.4G 10G 13M 113G 123G
Swap: 8G 129M 8G

步骤二:创建交换交换文件

sudo fallocate -l 125G /swap2.img

我们需要调整该文件的权限,否则如果其他人修改文件,将会造成隐患

ls -lh /swap2.img
-rw-r--r-- 1 root root 125G Mar 17 16:09 /swap2.img
sudo chmod 600 /swapfile
ls -lh /swap2.img
-rw------- 1 root root 125G Mar 17 16:09 /swap2.img

步骤三:启用交换文件

现在,我们可以通过输入下面的内容将文件标记为交换空间:

sudo mkswap /swap2.img 

这将输出

Setting up swapspace version 1, size = 125 GiB (134217723904 bytes)
no label, UUID=786bd22c-2e4b-44fe-a5fc-c3a3267fe262

标记文件后,我们可以启用交换文件

sudo swapon /swap2.img

我们重新查看swap,可以看到我们新增的交换空间

sudo swapon --show
sudo swapon --show
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 16G 111.8M -2
/swap2.img file 125G 0B -3

步骤五:使交换文件永久生效

上面我们设置了交换空间,但是重启服务器后,交换空间将不会自动神效,我们需要在服务器挂载阶段把交换问价挂载到交换空间

sudo cp /etc/fstab /etc/fstab.bak
echo '/swap2.img none swap sw 0 0' | sudo tee -a /etc/fstab

步骤六:调整swappiness

该参数配置系统将数据从 RAM 交换到交换空间的频率。这是一个介于 0 和 100 之间的值,当值为100,内存为0也会使用交换空间,当值为0时,内存满了也不会使用交换空间,这里我们设置一个合理的值

sudo sysctl vm.swappiness=10

上面的设置重启后会失效,如果要长期生效,请修改下面的文件

sudo vim /etc/sysctl.conf

在文件最后,加上

vm.swappiness=10

步骤七:调整vfs_cache_pressure

vfs_cache_pressure的值再0-100之间,这个值控制内核在进行缓存时对 inode 和 dentry 信息进行缓存的优先级。为100时,统从缓存中删除索引节点信息的速度过快,会导致系统变慢

cat /proc/sys/vm/vfs_cache_pressure

修改下面的文件,新增一行,重启后将会生效

sudo nano /etc/sysctl.conf
vm.vfs_cache_pressure=50

参考:如何在 Ubuntu 20.04 上添加交换空间 |数字海洋 (digitalocean.com)

猜你喜欢

转载自blog.csdn.net/qq_41566366/article/details/129624159
今日推荐