如何在CentOS 7上添加swap分区

让服务器响应更快、防止应用程序出现内存不足错误的最简单方法之一是添加一些swap空间。swap空间是存储驱动器上的一个区域,操作系统可以在其中临时存储无法保存在内存中的数据。这使您能够增加服务器能够保存在其工作内存中的信息的数量,但有一些警告。读写swap比使用内存慢,但它可以为服务器内存不足时提供良好的安全网。没有swap空间,服务器将耗尽内存。

介绍

在开始学习本指南之前,有几个步骤需要先完成。您将需要安装一个CentOS 7服务器,并配置一个具有sudo特权的非根用户。如果您还没有这样做,您可以运行CentOS 7初始服务器设置指南中的步骤1-4来创建这个帐户。一旦您拥有了非root用户,就可以使用它来SSH到CentOS服务器,并继续安装swap文件。

检查系统是否有swap信息

在开始之前,我们应该查看一下服务器的存储,看看是否已经有可用的swap空间。虽然我们可以有多个swap文件或swap分区,但通常一个就足够了。

第一种:我们可以使用swapon(一种通用swap实用程序)查看系统是否配置了swap。使用-s标志,swapon将在我们的存储设备上显示swap使用情况和可用性的信息,通过下面的命令查看

如果命令没有返回任何内容,不存在swap文件。

第二种:另一种检查swap空间的方法是使用free实用程序,它显示系统的总体内存使用情况。我们可以看到我们当前的内存和swap使用(以兆字节为单位),输入下面的命令

正如您所看到的,系统中的总swap空间为0。这与我们在swapon中看到的一致。

检查可用swap空间

为swap分配空间的典型方法是使用专用于任务的单独分区。然而,由于硬件或软件的限制,更改分区方案并不总是可能的。幸运的是,我们可以轻松地创建驻留在现有分区上的swap文件。

在此之前,我们应该了解当前驱动器的使用情况。我们可以通过输入:

 注意:-h标志简单地告诉dh以人类友好的阅读格式输出驱动器信息。例如,df -h将告诉我们M(兆字节)或G(十亿字节)的空间使用情况和可用性,而不是在分区中输出原始的内存块数量。

正如您在第一行中看到的,我们的存储分区有59g可用空间,所以我们有相当大的空间可以使用。请记住,这是在一个新的中型VPS实例上,所以您的实际使用可能会非常不同。

 尽管对于swap空间的适当大小有许多意见,但这实际上取决于您的应用程序需求和个人偏好。通常,等于或是系统上的内存倍速为起点。由于我的系统有4g内存,如果内存翻倍,将占用比我愿意放弃的更大的存储空间,因此我将创建一个4g的swap空间来匹配我的系统内存。

创建swap文件

既然我们知道了可用的存储空间,我们就可以在文件系统中创建一个swap文件了。我们将在根目录(/)中创建一个名为swapfile的文件,不过如果您愿意,可以将该文件命名为其他名称。该文件必须为swap文件分配所需的空间量。创建swap文件的最快和最简单的方法是使用fallocate。这个命令立即创建一个预先分配大小的文件。我们可以通过输入:

在输入您的密码以授权sudo特权之后,swap文件将几乎立即创建,提示将返回给您。我们可以使用ls来验证为swap预留的空间是否正确:

正如您所看到的,我们的swap文件是用正确的预留空间创建的。

启用swap文件

现在,我们的文件已经创建,但是我们的系统不知道这应该用于swap。我们需要告诉系统将此文件格式化为swap文件,然后启用它。在此之前,我们应该调整swap文件的权限,以便除根帐户之外的任何人都无法读取它。允许其他用户读或写这个文件将是一个巨大的安全风险。我们可以通过chmod锁定权限:

 

这将只限制对根帐户的读和写权限。我们可以再次使用ls -lh来验证swap文件是否具有正确的权限:

现在我们的swap文件更安全,我们可以告诉我们的系统设置swap空间使用键入:

我们的swap文件现在可以用作swap空间了。我们可以通过输入下列命令来开启swap空间:

为了验证这个过程是否成功,我们现在可以检查我们的系统报告是否swap了空间:

这个输出确认我们有一个新的swap文件。我们可以再次使用free工具来证实我们的发现:

我们的swap已成功设置,操作系统将根据需要开始使用它。

开机启动Swap文件

我们的swap文件目前是启用的,但是当我们重新启动时,服务器不会自动启用该文件。我们可以通过修改fstab文件来改变这一点,fstab文件是一个管理文件系统和分区的表。

在文本编辑器中编辑具有sudo特权的文件:

在文件的底部,你需要添加一行,告诉操作系统自动使用你创建的swap文件:

添加完行后,可以保存并关闭文件。服务器将在每次引导时检查此文件,因此从现在开始swap文件就可以使用了。

删除swap文件

如果你不想使用了swap空间你可以如下操作

1.首先通过键入以下命令禁用swap空间:

2.接下来,从/etc/fstab文件中删除swap文件这一行/swapfile swap缺省值0 0,如下

3.最后,删除实际的swapfile文件:

 

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

上一篇: centos7 安装denyhosts,登录ssh失败后禁用ip讲解

下一篇: 查看访问最多的ip分析centos7 apache日志

登录 评论
avatar