防止应用程序内存不足的最简单方法之一是增加服务器中的swap交换空间大小。在本文中,我们将解释如何向Ubuntu服务器增加swap交换空间。
步骤1:检查swap交换空间信息
在开始之前,首先运行以下命令,确保检查系统是否已经有可用的交换空间。
linuxidc@linuxidc:~/www.linuxidc.com$ sudo swapon –show
[sudo] linuxidc 的密码:
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2
检查Ubuntu中的交换空间
如果您没有看到任何输出,则表示您的系统当前没有可用的交换空间。
您还可以使用free命令确认没有可用的交换空间。
linuxidc@linuxidc:~/www.linuxidc.com$ free -h
总计 已用 空闲 共享 缓冲/缓存 可用
内存: 3.8G 1.5G 569M 32M 1.8G 2.1G
交换: 2.0G 0B 2.0G
Ubuntu中的交换空间为2G
您可以从上面的输出中看到,系统上没有活动交换。
第2步:检查分区上的可用空间
要创建交换空间,首先需要检查当前的磁盘使用情况,并确认有足够的空间在系统上创建交换文件。
检查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
在Ubuntu中创建swap文件
从上面的输出中,您可以看到我们已经创建了具有正确空间量(即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
在交换文件上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交换空间
通过运行以下命令验证交换空间是否可用。
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中的交换空间
从上面的输出中可以看出,我们的新交换文件已经成功创建,我们的Ubuntu系统将在必要时开始使用它。
第5步:在Ubuntu中永久挂载交换文件
要使交换空间永久化,您需要在/etc/fstab文件中添加交换文件信息,并通过运行以下命令对其进行验证。
linuxidc@linuxidc:~/www.linuxidc.com$ echo ‘/swap.img none swap sw 0 0’ | sudo tee -a /etc/fstab
linuxidc@linuxidc:~/www.linuxidc.com$ cat /etc/fstab
第6步:调整Ubuntu中的交换设置
您需要配置一些设置,这些设置会影响您在使用交换时的Ubuntu性能。
调整Swappiness值
Swappiness是一个Linux内核参数,用于指定系统将数据从RAM交换到交换空间的频率(以及频率)。 此参数的默认值为“60”,它可以使用“0”到“100”之间的任何值。 值越高,内核使用的交换空间越高。
首先,键入以下命令检查当前的swappiness值。
linuxidc@linuxidc:~/www.linuxidc.com$ cat /proc/sys/vm/swappiness
60
检查Swappiness值
当前的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文件系统来检查当前值。
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$ sudo swapoff -v /swap.img
swapoff /swap.img
linuxidc@linuxidc:~/www.linuxidc.com$ sudo rm -rf /swap.img
最后,从/etc/fstab文件中删除交换文件条目。
就这样! 在本文中,我们已经解释了如何在Ubuntu发行版上创建swap交换文件。 如果您对本文有任何疑问,请随时在下面的评论部分提出您的问题。
更多Ubuntu相关信息见Ubuntu 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-07/159580.htm