阿里云centos创建swap分区的办法

以前不用国内的云,现在一用。。真是不用不知道。。用了你就留掉坑里了。。系统盘只能升不能降。。

阿里云全系linux系统不配置swap分区,按照阿里云的说法是为了让大家多买内存。。。以减少对swap的依赖。。however,许多应用程序要求必须要有swap分区,比如说大名鼎鼎的oracle

话不多说,下面说下centos创建swap的方法. 目前主流的做法有两种: 一是创建一个单独的分区,专门用来做swap区,这是推荐的做法。但是对于阿里云来说,如果你没有加载第二个或者第三个数据盘,这是很难实现的。因为对系统盘做无损分区,这基本是不可能的事情。因此,只有当你挂载了第二个数据盘或者多个数据盘,还没有开始使用的情况下,可以使用这个方式;二是专门创建一个目录来做swap分区,这种方法不受系统盘和数据盘的限制,哪里有空间,哪里就可以设置。但是这种方式的速度不如直接挂载一个分区过去速度快。

第二种方式,阿里云的官方文档中有详细的说明: https://help.aliyun.com/knowledge_detail/42534.html

这里我就不多说了。这篇文章主要关注点在于创建一个分区然后挂载到swap分区上

swap 的大小,根据我多年的经验,在内存小于等于4G时,可以设置为内存的2倍;在大于4G时,建议设置为和内存大小一样。

对新数据盘进行分区,就是使用fdisk /dev/vdx 命令,然后跟着命令走就可以了

格式化的时候,和格式化普通格式硬盘不一样,需要使用mkswap命令, 加入我们创建的分区为/dev/vdb1

则命令为

mkswap /dev/vdb1

swapon /dev/vdb1

第一句话表明格式化为swap 分区,第二句话表示enable swap分区。

运行完这两个命令,用free -m就可以看到swap分区了。

如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a

但是当你重启以后,你会发现swap又没有了。。这是因为我们需要把挂载swap的命令写入/etc/fstab里面

/dev/vbd1 swap swap defaults 0 0

但是这还没完呢

在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。

标准的linux安装板,会把此值这是为60

可用下面的命令临时修改此项参数:

echo 10 >/proc/sys/vm/swappiness

若要永久修改此项配置,需要编辑/etc/sysctl.conf, 并增加一下内容:

# vim /etc/sysctl.conf
vm.swappiness=10
# sysctl -p

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.