低内存Centos Swap分区并添加开机挂载

阿里云服务器默认是没有swap的。
而且阿里云服务器中在/etc/rc.d/rc.local脚本中将所有fstab中要求挂载的swap分区都给关闭了。
咨询了阿里云工程师为何关闭swap,回复如下:

 您好,swap主要是内存不够用的时候,将内存中不使用的一些内容放到swap中,内存会和swap频繁交换数据。这个可能会引起io的问题。如果内存够用,除非有特殊情况,比如安装oracle。建议不使用swap。请了解。

不过,如果你觉得swap分区很有必要,那么我们可以修改rc.local文件,将其中的swapoff -a注释或者删掉。
然后通过文件或分区建立swap分区,并使其开机挂载。
下面记录一下我开启swap的过程。

  • 建立swap分区
  • 使用fstab文件指定swap自动挂载

建立swap分区

查看当前的内存和分区使用情况。

[golang@vps ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:           512         29        482          0          0         14
-/+ buffers/cache:         15        496
Swap:           0          0         0

可以看到当前swap大小为0,挂载根目录的分区是最大的分区,我们建立一个文件放到/home/swap并且使用该文件启动swap

dd if=/dev/zero of=/home/swap bs=1M count=2048
mkswap /home/swap
swapon /home/swap

挂载完毕后,我们查看内存使用情况。发现swap出现了。

[golang@vps ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:           488        482          6          0          1          5
-/+ buffers/cache:        475         13
Swap:          499          0        499

虽然现在swap能用了,但它仍然不会自动挂载,一重启就没有了。

使用fstab文件指定swap自动挂载

我们需要将其加入到fstab文件中使其自动挂载。
rhel中,只要编辑/etc/fstab文件,将swap信息加入即可。
使用vim编辑fstab文件,加入下面一行。

/home/swap swap swap defaults 0 0

但是文章开始提到阿里云默认是不让用户使用swap的。
我们需要编辑/etc/rc.d/rc.local文件,将文件中的swapoff行注释或删掉。

#swapoff -a
搞定,reboot之后,查看内存使用情况。我们会发现,swap分区已经正常挂载了。

[golang@vps ~]# free -m
total used free shared buffers cached
Mem: 488 302 186 0 6 50
-/+ buffers/cache: 245 243
Swap: 2047 0 2047

转载请注明来源:新一 » 低内存Centos Swap分区并添加开机挂载

赞 (3) 评论 (0) 分享 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址