阿里云服务器添加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分区
查看当前的内存和分区使用情况。

[root@qiansw ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           488        482          6          0          2         17
-/+ buffers/cache:        463         25
Swap:            0          0          0
[root@qiansw ~]# df -hT
文件系统    类型      容量  已用  可用 已用%% 挂载点
/dev/xvda1    ext4     20G  1.4G   18G   8% /
tmpfs        tmpfs    245M     0  245M   0% /dev/shm

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

[root@qiansw ~]# dd if=/dev/zero of=/var/swap bs=1M count=2048
记录了2048+0 的读入
记录了2048+0 的写出
2147483648字节(2.1 GB)已复制,74.6081 秒,28.8 MB/秒
[root@qiansw ~]# mkswap /var/swap
mkswap: /var/swap: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=7ec70f4f-6444-4c52-bd64-51ab61392569
[root@qiansw ~]# swapon /var/swap

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

[root@qiansw ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           488        482          6          0          1         10
-/+ buffers/cache:        470         18
Swap:         2047          0       2047

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

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

/var/swap               swap                    swap    defaults        0 0

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

#swapoff -a

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

Welcome to aliyun Elastic Compute Service!

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

############## 附swapoff说明 ##############

[root@qiansw ~]# swapoff --help

Usage:
 swapoff -a [-v]                      disable all swaps(禁用所有swap)
 swapoff [-v]                disable given swap
 swapoff -h                           display help
 swapoff -V                           display version
点赞