帮助中心

DNS污染处理

常见问题

香港高防IP

常见问题

香港大带宽服务器

产品简介 操作指南 常见问题

新加坡高防服务器

产品简介 操作指南 常见问题

新加坡云服务器

产品简介 操作指南 常见问题

香港服务器租用

产品简介 操作指南 常见问题

香港高防服务器

产品简介 操作指南 常见问题

域名服务

域名服务

Ubuntu上增加swap交换空间具体方法

时间 : 2022-10-09 09:32:49
编辑 : 华纳云

Linux系统下的Swap交换空间与Windows下的虚拟内存意思差不多,Swap交换空间的作用可简单这样理解:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。

步骤1:检查swap交换空间信息

在开始之前,首先运行以下命令,确保检查系统是否已经有可用的交换空间。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo swapon --show

[sudo] linuxidc 的密码:

NAME   TYPE SIZE USED PRIO

/swapfile file 2G 0B -2

https://www.hncloud.com/uploads/UEditorImages/202210/09/58eb94d89012326234f41dd9a61c8d89.jpg

如果您没有看到任何输出,则表示您的系统当前没有可用的交换空间。

您还可以使用free命令确认没有可用的交换空间。

linuxidc@linuxidc:~/www.linuxidc.com$ free -h

      总计    已用    空闲   共享  缓冲/缓存  可用

内存:    3.8G    1.5G    569M    32M    1.8G    2.1G

交换:    2.0G     0B    2.0G

https://www.hncloud.com/uploads/UEditorImages/202210/09/bd29a9fc9b9d277712ca817cc6039561.jpg

您可以从上面的输出中看到,系统上没有活动交换。

第2步:检查分区上的可用空间

要创建交换空间,首先需要检查当前的磁盘使用情况,并确认有足够的空间在系统上创建交换文件。

https://www.hncloud.com/uploads/UEditorImages/202210/09/2a8270cd430c3b49e391460c9fbf4524.jpg

检查Ubuntu中的文件系统磁盘使用情况

再 / 的分区有足够的空间可用于创建swap文件。

第3步:在Ubuntu中创建swap文件

现在我们将使用fallocate命令在我们的Ubuntu根(/)目录上创建一个名为“swap.img”的交换文件(大小为1GB),您可以根据需要调整大小。并使用ls命令验证交换的大小 如图所示。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo fallocate -l 1G /swap.img

[sudo] linuxidc 的密码:

linuxidc@linuxidc:~/www.linuxidc.com$ ls -lh /swap.img

-rw-r--r-- 1 root root 1.0G Jul 26 01:54 /swap.img

https://www.hncloud.com/uploads/UEditorImages/202210/09/1d273cad2e16f90d0c40981eea8d1fec.jpg

从上面的输出中,您可以看到我们已经创建了具有正确空间量(即1GB)的交换文件。

第4步:在Ubuntu中启用swap文件

要在Ubuntu中启用swap文件,首先需要在文件上设置正确的权限,以便只有root用户才能访问该文件。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo chmod 600 /swap.img

linuxidc@linuxidc:~/www.linuxidc.com$ ls -lh /swap.img

-rw------- 1 root root 1.0G Jul 26 01:54 /swap.img

https://www.hncloud.com/uploads/UEditorImages/202210/09/d3da5b4d09d4520444393953f4e77b96.jpg

在交换文件上swap权限

从上面的输出中,您可以看到只有root用户具有读写权限。

现在运行以下命令将文件标记为swap交换空间,并启用交换文件以开始在系统上使用它。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo mkswap /swap.img

正在设置交换空间版本 1,大小 = 1024 MiB (1073737728 个字节)

无标签, UUID=735aa07f-d43e-4cec-92e3-383815de7317

linuxidc@linuxidc:~/www.linuxidc.com$ sudo swapon /swap.img

在Ubuntu中启用swap交换空间

https://www.hncloud.com/uploads/UEditorImages/202210/09/c25a379906e589efb0a42f41fca22855.jpg

通过运行以下命令验证交换空间是否可用。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo swapon --show

NAME   TYPE SIZE USED PRIO

/swapfile file  2G 0B -2

/swap.img file 1024M 0B -3

linuxidc@linuxidc:~/www.linuxidc.com$ free -h

      总计    已用    空闲   共享  缓冲/缓存  可用

内存:    3.8G    1.5G    549M    32M    1.8G    2.0G

交换:    3.0G     0B    3.0G

从上面的输出中可以看出,我们的新交换文件已经成功创建,我们的Ubuntu系统将在必要时开始使用它。

第5步:在Ubuntu中永久挂载交换文件

要使交换空间永久化,您需要在/etc/fstab文件中添加交换文件信息,并通过运行以下命令对其进行验证。

linuxidc@linuxidc:~/www.linuxidc.com$&nbsp;<span style="color: #0086b3;line-height: 26px">echo</span>&nbsp;<span style="color: #d14;line-height: 26px">'/swap.img&nbsp;none&nbsp;swap&nbsp;sw&nbsp;0&nbsp;0'</span>&nbsp;|&nbsp;sudo&nbsp;tee&nbsp;-a&nbsp;/etc/fstab

linuxidc@linuxidc:~/www.linuxidc.com$&nbsp;cat&nbsp;/etc/fstab

第6步:调整Ubuntu中的交换设置

您需要配置一些设置,这些设置会影响您在使用交换时的Ubuntu性能。

调整Swappiness值

Swappiness是一个Linux内核参数,用于指定系统将数据从RAM交换到交换空间的频率(以及频率)。 此参数的默认值为“60”,它可以使用“0”到“100”之间的任何值。 值越高,内核使用的交换空间越高。

首先,键入以下命令检查当前的swappiness值。

linuxidc@linuxidc:~/www.linuxidc.com$&nbsp;cat&nbsp;/proc/sys/vm/swappiness

60

当前的swappiness值为60非常适合桌面使用,但对于服务器,您必须将其设置为较低的值,即10。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo sysctl vm.swappiness=10

要使此设置永久化,您需要将以下行添加到/etc/sysctl.conf文件中。

vm.swappiness=10

调整缓存压力设置

您可能想要更改的另一个类似设置是vfs_cache_pressure – 此设置指定系统要在其他数据上缓存inode和dentry详细信息的程度。

您可以通过查询proc文件系统来检查当前值。

https://www.hncloud.com/uploads/UEditorImages/202210/09/70c011f2d2b54004c4501bc87b320847.jpg

linuxidc@linuxidc:~/www.linuxidc.com$ cat /proc/sys/vm/vfs_cache_pressure 100

当前值设置为100,这意味着我们的系统会过快地从缓存中删除inode信息。 我建议,我们应该将它设置为更稳定的设置,如50。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo sysctl vm.vfs_cache_pressure=50

要使此设置永久化,您需要将以下行添加到/etc/sysctl.conf文件中。

vm.vfs_cache_pressure=50

完成后保存并关闭文件。

第7步:删除Ubuntu中的交换文件

要删除或删除新创建的交换文件,请运行以下命令。

linuxidc@linuxidc:~/www.linuxidc.com$&nbsp;sudo&nbsp;swapoff&nbsp;-v&nbsp;/swap.img

swapoff&nbsp;/swap.img

linuxidc@linuxidc:~/www.linuxidc.com$&nbsp;sudo&nbsp;rm&nbsp;-rf&nbsp;/swap.img

最后,从/etc/fstab文件中删除交换文件条目。

华纳云

客服咨询
7*24小时技术支持
Telegram
hncloudnoc

技术支持

渠道支持