如何在Ubuntu/CentOS中创建SWAP交换分区文件

发布时间: 更新时间: 总字数:992 阅读时间:2m 作者: 分享

在服务器内存不足而影响到服务器响应能力甚至导致应用程序出错时,为Linux设置Swap交换分区无疑是一个折中的解决办法。

查看swap命令

sudo swapon -s

当然,我们也可以使用最常用的 free 命令来查看当前系统是否存在 Swap 交换分区:

free -m

划分交换文件最佳的方式就是将其放到一个单独的分区当中,当然,如果无法单独为其划分的话也可以在已有的分区上创建新的交换文件。但在创建新的 Swap 交换分区或创建交换文件之前,我们需要通过如下命令了解下当前系统对磁盘空间的使用情况:

df -h

确定好磁盘的空闲空间后,你已经可以根据你自己的实际情况来决定如何划分和创建 Swap 交换分区了。一般情况下,创建 Swap 分区的大小都为当前系统使用的物理内存大小或内存大小的倍数。

创建Swap分区文件

要在 Ubuntu/CentOS中要创建 Swap 分区主要有如下 2 种方式:

  1. dd创建方式

一般情况下,我们都会使用 dd 命令来预先创建交换分区文件,然后再用 /dev/zero 将该文件的内容全部置零,创建时还将用到 bs 参数来设置要创建的交换空间大小,以及使用 count 来指定要创建的 block 数。例如,我们要创建 4G 的交换分区文件可以使用如下命令:

sudo dd if=/dev/zero of=/swapfile bs=1G count=4
  1. 快速创建方式

你可能已经注意到了,上述方式创建 Swap 交换文件的过程比较慢,如果想快速创建交换分区可以使用 fallocate 程序来实现。该命令会立即创建一个预分配的交换文件,而产是按实际大小写入分配的大小。如果同样是要创建 4G 大小的交换创建文件,快捷创建方式的命令如下:

sudo fallocate -l 4G /swapfile

启用Swap分区文件

我们的 swapfile 交换文件已经创建好了,但 Ubuntu/CentOS还不知道它是被用作交换分区,所以我们还需要将此文件格式化为 Swap 分区交启用它。

首先,我们需要使用如下命令更改下 swapfile 文件的权限,以避免其被无意理性到:

sudo chmod 600 /swapfile

然后,我们需要用如下将 swapfile 初始化为交换文件:

sudo mkswap /swapfile

最后,还需要使用如下命令来启用交换文件:

sudo swapon /swapfile

配置启用时挂载Swap分区文件

Swap 交换文件虽然已经配置好并已经启用了,但 Ubuntu/CentOS 在重启后是不会挂载我们刚创建的交换分区文件的,因此我们还需要对 /etc/fstab 文件进行更改,让其在系统启动时就自动挂载我们创建的 /swapfile 文件。

开机自启动新添加的swap分区:

vim /etc/fstab
/swap swap swap defaults 0 0

swap的扩展与删除

swap分区的扩展很简单,但是需要root用户权限

从/分区分出8x1024M大小的空间,挂在/swap上

dd if=/dev/zero of=/swap bs=1024M count=8

格式化成swap格式

mkswap /swap

激活/swap,加入到swap分区中

swapon /swap

如果不想使用需要删除,只需要执行

swapoff /swap

完毕。

Home Archives Categories Tags Docs