阿里云ECS Linux开启swap(虚拟内存)

阿里云的服务器默认是不开启虚拟内存的,官方给出的理由如下:

由于开启swap分区会导致硬盘IO性能下降,因此阿里云服务器初始状态未配置swap。

这确实是个理由,开启swap对阿里云并没有什么太多的好处:

  1. 开启swap分区会造成阿里云宿主机的磁盘负载增大,其一会影响磁盘IO性能,其次还会降低磁盘使用寿命;
  2. 在阿里云推出SSD之后,SSD的性能和内存性能的差距相对机械硬盘来说减小很多,SSD设置可以当内存使用。但是SSD和内存的价格差别不是一点半点。

但是不开启swap,会造成很严重的后果:

  1. 内存使用波动的时候会导致系统直接杀死某些进程,造成严重的系统不稳定因素,触发只是因为系统偶尔的一次波动而已。

开启swap的方法

创建用于交换分区的文件

1
dd if=/dev/zero of=/mnt/swap bs=1M count=4096

注:block_sizenumber_of_block大小可以自定义,比如bs=1M count=4096代表设置4G大小swap分区

设置交换分区文件

1
mkswap /mnt/swap

立即启用交换分区文件

1
swapon /mnt/swap

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

设置开机时自启用swap分区

需要修改文件/etc/fstab中的swap行。添加以下内容:

1
/mnt/swap swap swap defaults 0 0

注:/mnt/swap 路径可以修改,可以根据创建的swap文件具体路径来配置。

设置后可以执行free -m命令查看效果:

1
2
3
4
5
root@www:~# free -m
total used free shared buffers cached
Mem: 7983 7784 199 2 70 1158
-/+ buffers/cache: 6555 1428
Swap: 4095 1052 3043


转载请注明出处:阿里云ECS Linux开启swap(虚拟内存)
原文地址:https://www.xiaotanzhu.com/%E8%BF%90%E7%BB%B4/2016-08-26-turn-on-swap-on-aliyun-linux.html