首先要准备一台阿里云,腾讯云或百度云的CentOS7.4的机器,这些云主机初始化系统都是未配置swap分区的,Swap分区在系统的物理内存(这里应该是运行内存)不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
swap分区建议大小是物理内存的 1~2 倍,创建和删除 swap 分区,只需要执行以下几个步骤。

1、查看内存与分区使用情况

[root@VM_0_4_centos ~]# free -h    //查看内存使用情况或使用free -m命令
              total        used        free      shared  buff/cache   available
Mem:           3.7G        640M        1.8G        460K        1.3G        2.8G
Swap:            0B          0B          0B

[root@VM_0_4_centos ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   12G   35G  26% /
devtmpfs        1.9G  1.9G     0 100% /dev
tmpfs           1.9G   24K  1.9G   1% /dev/shm
tmpfs           1.9G  432K  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           379M     0  379M   0% /run/user/0
注:可将swap分区设置在/dev/vda1分区指定路径上。

2、使用dd命令设置swap分区大小

[root@VM_0_4_centos ~]# dd if=/dev/zero of=/var/swap bs=1024 count=4096000     //创建一个4G的swap空间
4096000+0 records in
4096000+0 records out
4194304000 bytes (4.2 GB) copied, 32.8546 s, 128 MB/s

3、创建swap分区

[root@VM_0_4_centos ~]# mkswap /var/swap 
Setting up swapspace version 1, size = 4095996 KiB
no label, UUID=b0fd4591-ca0b-4cb0-8af3-9fc52d9e2c3a

4、激活已创建的swap分区

[root@VM_0_4_centos ~]# swapon /var/swap
swapon: /var/swap: insecure permissions 0644, 0600 suggested.
[root@VM_0_4_centos ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        640M        128M        452K        2.9G        2.8G
Swap:          3.9G          0B        3.9G

5、开机自动挂载

[root@VM_0_4_centos ~]# vi /etc/fstab,在fstab文件末尾添加以下内容:
/var/swap swap swap defaults 0 0

6、查看内核参数vm.swappiness中的数值是否为0,(注:0代表不使用swap分区)

cat /proc/sys/vm/swappiness

如果为0则根据实际需要配置swappiness值为30,配置方法:

vi /etc/sysctl.conf

文件里添加或修改为如下参数:vm.swappiness=30,最后重启系统才能生效,如下图所示。

image.png

注:swappiness是Linux的一个内核参数,控制系统在进行swap时,内存使用的相对权重,swappiness参数值可设置范围在0到100之间。 此参数值越低,就会让Linux系统尽量少用swap分区,多用内存;参数值越高就是反过来,使内核更多的去使用swap空间。Ubuntu系统swappiness默认值为60,表示的含义可以这样来理解,当剩余物理内存低于40%(40=100-60)时,开始使用swap分区。CentOS系统此参数的默认值是30。如果内存充足,就可以将这个值设置很低,甚至为0,以避免系统进行swap而影响性能。
默认情况下,阿里云云主机的swap功能是没有启用的,原因当然是通过取消swap功能可以降低磁盘IO的占用率来让用户购买更多的内存、提高磁盘寿命和性能。

7、删除swap分区

[root@VM_0_4_centos ~]# swapoff /var/swap  //停止使用swap分区
[root@VM_0_4_centos ~]# rm -f /var/swap  //删除swap分区文件
[root@VM_0_4_centos ~]# vi /etc/fstab  //删除或注释在/etc/fstab文件中的以下开机自动挂载内容:/var/swap swap swap defaults 0 0
上一篇 下一篇