对于内存比较小的ECS来说,开启swap可以避免偶尔的内存溢出。

#查看内存和虚拟分区情况
free -h

#创建虚拟分区(1GB)
dd if=/dev/zero of=/mnt/swap bs=1M count=1000
mkswap /mnt/swap

#启用swap
swapon /mnt/swap
echo 10 > /proc/sys/vm/swappiness

#查看swap
free -h

#写入配置
echo -e "\n/mnt/swap swap swap defaults 0 0\n" >> /etc/fstab
vi /etc/sysctl.conf
# 将其中的对应行的数值从0更改为10,10%剩余内存时使用swap
# vm.swapiness=10

以上的代码将创建1000M的swap分区(bs × count),即时启用。在剩余10% (swapiness)物理内存时将会使用swap。

同时,将配置写入系统文件。重启之后仍然会使用上述配置。

作者简介

Chun-Hui Gao is a Research Associate at Huazhong Agricultural University.

重复使用

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The source code is licensed under MIT. The full source is available at https://github.com/yihui/hugo-prose.

欢迎修订

如果您发现本文里含有任何错误(包括错别字和标点符号),欢迎在本站的 GitHub 项目里提交修订意见。

引用本文

如果您使用了本文的内容,请按照以下方式引用:

gaoch (2017). 在阿里云ECS上设置swap分区. BIO-SPRING. /post/2017/10/10/2017-10-10-enable-swap-in-aliyun-ecs/

BibTeX citation

@misc{
  title = "在阿里云ECS上设置swap分区",
  author = "gaoch",
  year = "2017",
  journal = "BIO-SPRING",
  note = "/post/2017/10/10/2017-10-10-enable-swap-in-aliyun-ecs/"
}