如何在Ubuntu上添加交换空间swap 您所在的位置:网站首页 linux增加swap内存 如何在Ubuntu上添加交换空间swap

如何在Ubuntu上添加交换空间swap

#如何在Ubuntu上添加交换空间swap| 来源: 网络整理| 查看: 265

观察应用程序内存不足问题的最简单方法之一是增加服务器中的一些交换大小。 在本文中,我们将解释如何将交换文件添加到Ubuntu服务器。

第1步:检查交换信息

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

代码语言:javascript复制$ sudo swapon --show检查Ubuntu中的交换空间检查Ubuntu中的交换空间

检查Ubuntu中的交换空间

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

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

代码语言:javascript复制$ free -h检查Ubuntu中的免费交换空间检查Ubuntu中的免费交换空间

检查Ubuntu中的免费交换空间

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

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

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

代码语言:javascript复制$ df -h检查Ubuntu中的文件系统磁盘使用情况检查Ubuntu中的文件系统磁盘使用情况

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

具有/的分区有足够的空间可用于创建交换文件。

第3步:在Ubuntu中创建交换文件

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

代码语言:javascript复制$ sudo fallocate -l 1G /swap.img $ ls -lh /swap.img在Ubuntu中创建交换文件在Ubuntu中创建交换文件

在Ubuntu中创建交换文件

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

第4步:在Ubuntu中启用交换文件

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

代码语言:javascript复制$ sudo chmod 600 /swap.img $ ls -lh /swap.img在交换文件上设置权限在交换文件上设置权限

在交换文件上设置权限

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

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

代码语言:javascript复制$ sudo mkswap /swap.img $ sudo swapon /swap.img在Ubuntu中启用交换空间在Ubuntu中启用交换空间

在Ubuntu中启用交换空间

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

代码语言:javascript复制$ sudo swapon --show $ free -h验证Ubuntu中的交换空间验证Ubuntu中的交换空间

验证Ubuntu中的交换空间

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

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

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

代码语言:javascript复制$ echo '/swap.img none swap sw 0 0' | sudo tee -a /etc/fstab $ cat /etc/fstab在Ubuntu中永久挂载交换文件在Ubuntu中永久挂载交换文件

在Ubuntu中永久挂载交换文件

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

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

调整Swappiness值

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

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

代码语言:javascript复制$ cat /proc/sys/vm/swappiness检查Swappiness值检查Swappiness值

检查Swappiness值

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

代码语言:javascript复制$ sudo sysctl vm.swappiness=10

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

代码语言:javascript复制vm.swappiness=10调整缓存压力设置

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

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

代码语言:javascript复制$ cat /proc/sys/vm/vfs_cache_pressure检查缓存压力设置检查缓存压力设置

检查缓存压力设置

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

代码语言:javascript复制$ sudo sysctl vm.vfs_cache_pressure=50

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

代码语言:javascript复制vm.vfs_cache_pressure=50

完成后保存并关闭文件。

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

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

代码语言:javascript复制$ sudo swapoff -v /swap.img $ sudo rm -rf /swap.img删除Ubuntu中的交换文件删除Ubuntu中的交换文件

删除Ubuntu中的交换文件

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

就这样! 在本文中,我们已经解释了如何在Ubuntu发行版上创建交换文件。 如果您对本文有任何疑问,请随时在下面的评论部分提出您的问题。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有