使用文件做交换空间

我注意到并非所有的云托管Linux服务器都启用了交换。当我启动一个新的CentOS服务器上基于例如数字海洋,没有交换空间。

通常你会使用专用的磁盘分区进行交换,但是当你只有一个磁盘分配给你的云服务器时,就没有交换空间了 。一个很好的替代方案是为交换空间创建和使用文件。如下:

在此之前请用root账户登录

首先,检查是否真的没有交换空间了,命令如下:

free –m

输出:

total       used       free     shared    buffers     cached

Mem:           499         47        451          0          4         23

-/+ buffers/cache:         19        480

Swap:            0          0          0

注意交换是零,确认了在这个服务器上没有交换空间。

接下来,我们将创建一个交换文件。我知道有很多不同观点关于大交换空间应该多大,但是对于一个小型的服务器来说,一个好的选择是使它和RAM(随机存储器)的大小相同。所以,我的服务器有大约一半的RAM,所以这就是我在这里创建的交换文件的大小。

有几种方法可以创建一个特定大小的空文件。好的老DD是我最喜欢的,但是如果文件大的话可能会慢一点。或者你可以使用 fallocate 更快,因为它不写数据到磁盘之类的DD呢。例如,用DD创建一个512 MB的交换文件:

dd if=/dev/zero  of=/swapfile bs =1M count=512

或者 fallocate:

fallocate –1 512M /swapfile

文件创建后,我们必须更改它的权限,使其不具有全局可读性:

chmod 600 /swapfile

接下来,将文件格式化为交换文件:

mkswap /swapfile

输出示例:

/swapfile: warning: don't erase bootbits sectors

on whole disk. Use -f to force. Setting up swapspace version 1, size = 524284 KiB

no label, UUID=67ab43a1-d567-4275-abe1-09d190dd0d39

现在激活我们的新文件:

swapon /swapfile

再次运行自由命令检查它是否正常工作:

free -m

结果:

total       used       free     shared    buffers     cached

Mem:           499        491          7          0          2        463

-/+ buffers/cache:         26        472

Swap:          511          0        511

确保该文件开机启动,我们需要在/etc/fstab文件中,添加下面一行到文件末尾:

/swapfile none swap defaults 0 0

ok!您的服务器现在有一些Linux交换空间。

From:

http://www.kevssite.com/2013/10/13/add-a-linux-swap-file/

0 条评论
发表一条评论