监视应用程序内存不足问题的最简单方法之一是增加服务器中的交换大小。在本文中,我们将解释如何将交换文件添加到Ubuntu服务器。
步骤一:查看掉期信息
在开始之前,首先确保通过运行以下swapon 命令检查系统是否已有可用的交换空间。
$ sudo swapon --show
![](https://www.alaica.com/wp-content/uploads/linux-144.png)
如果您没有看到任何输出,则意味着您的系统当前没有可用的交换空间。
您还可以使用free 命令确认没有可用的交换空间。
$免费-h
![](https://www.alaica.com/wp-content/uploads/linux-145.png)
您可以从上面的输出中看到,系统上没有活动的交换。
步骤 2:检查分区上的可用空间
要创建交换空间,首先需要检查当前的磁盘使用情况并确认系统上有足够的空间来创建交换文件。
$ df -h
![](https://www.alaica.com/wp-content/uploads/linux-146.png)
该分区/
有足够的空间可用于创建交换文件。
步骤 3:在 Ubuntu 中创建交换文件
现在,我们将使用Fallocate"swap.img"
命令在 Ubuntu目录上创建一个大小为1GB的交换文件(您可以根据需要调整大小),并使用ls 命令验证交换的大小,如图所示。root (/)
$ sudo fallocate -l 1G /swap.img $ ls -lh /swap.img
![](https://www.alaica.com/wp-content/uploads/linux-147.png)
从上面的输出中,您可以看到我们创建了具有正确空间量的交换文件,即1GB。
步骤 4:在 Ubuntu 中启用交换文件
要在 Ubuntu 中启用交换文件,首先需要为该文件设置正确的权限,以便只有用户root
才能访问该文件。
$ sudo chmod 600 /swap.img $ ls -lh /swap.img
![](https://www.alaica.com/wp-content/uploads/linux-148.png)
从上面的输出可以看到,只有该root
用户具有读写权限。
现在运行以下命令将文件标记为交换空间并使交换文件能够开始在系统上使用它。
$ sudo mkswap /swap.img $ sudo swapon /swap.img
![](https://www.alaica.com/wp-content/uploads/linux-149.png)
通过运行以下命令验证交换空间是否可用。
$ sudo swapon --show $免费-h
![](https://www.alaica.com/wp-content/uploads/linux-150.png)
从上面的输出可以清楚地看出,我们的新交换文件已成功创建,我们的 Ubuntu 系统将根据需要开始使用它。
步骤 5:在 Ubuntu 中永久挂载交换文件
要使交换空间永久化,需要在/etc/fstab
文件中添加交换文件信息,并通过运行以下命令进行验证。
$ echo '/swap.img 无交换 sw 0 0' | sudo tee -a /etc/fstab $ 猫 /etc/fstab
![](https://www.alaica.com/wp-content/uploads/linux-151.png)
第 6 步:调整 Ubuntu 中的交换设置
您需要配置一些设置,这些设置会影响您的 Ubuntu 在使用交换时的性能。
调整 Swapiness 值
Swappiness是一个 Linux 内核参数,它指定系统将 RAM 中的数据交换到交换空间的数量(以及频率)。该参数的默认值为“60”,可以使用“0”到“100”之间的任何值。该值越高,内核对交换空间的使用率越高。
首先,通过键入以下命令检查当前的 swappiness 值。
$ cat /proc/sys/vm/swappiness
![](https://www.alaica.com/wp-content/uploads/linux-152.png)
当前的 swappiness 值60非常适合桌面使用,但对于服务器,您必须将其设置为较低的值,即10。
$ sudo sysctl vm.swappiness=10
要使此设置永久生效,您需要将以下行添加到文件中/etc/sysctl.conf
。
vm.swappiness=10
调整缓存压力设置
您可能想要更改的另一个类似设置是vfs_cache_pressure
– 该设置指定系统希望在其他数据上缓存inode和dentry详细信息的程度。
您可以通过查询 proc 文件系统来检查当前值。
$ cat /proc/sys/vm/vfs_cache_压
![](https://www.alaica.com/wp-content/uploads/linux-153.png)
当前值设置为100,这意味着我们的系统从缓存中删除 inode 信息的速度太快。我建议我们应该将其设置为更稳定的设置,例如50。
$ sudo sysctl vm.vfs_cache_Pressure=50
要使此设置永久生效,您需要将以下行添加到文件中/etc/sysctl.conf
。
vm.vfs_cache_Pressure=50
完成后保存并关闭文件。
步骤 7:删除 Ubuntu 中的交换文件
要删除或删除新创建的交换文件,请运行以下命令。
$ sudo swapoff -v /swap.img $ sudo rm -rf /swap.img
![](https://www.alaica.com/wp-content/uploads/linux-154.png)
最后,从/etc/fstab文件中删除交换文件条目。
就这样!在本文中,我们解释了如何在 Ubuntu 发行版上创建交换文件。如果您对本文有任何疑问,请随时在下面的评论部分提出您的问题。