添加阿里云服务器的swap分区

阿里云默认没有开启swap分区!小内存测试服务器常爆机!

Cannot allocate memory - identify

Cannot allocate memory - convert -size 240x240 xc:'rgb(142,125,214)' -pointsize 140 -font

查看 swap 空间大小

$ sudo swapon -s
Filename        Type    Size  Used  Priority

首先先登录root

sudo su -

1、创建用于交换分区的文件:

# dd if=/dev/zero of=/mnt/swapfile bs=1k count=1024000

1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 17.7815 s, 59.0 MB/s

2、设置交换分区文件:

# mkswap /mnt/swapfile

Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=c09e7797-1481-4d87-a620-29aa24ede564

3、立即启用交换分区文件

swapon /mnt/swapfile
# free -m
             total       used       free     shared    buffers     cached
Mem:           992        914         77          0          5         70
-/+ buffers/cache:        839        153
Swap:          999          0        999

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

4、设置开机时自启用 SWAP 分区:

需要修改文件 /etc/fstab 中的 SWAP 行,添加

# echo "/mnt/swapfile swap swap defaults 0 0" >>/etc/fstab

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

5、修改 swpapiness 参数

# echo 30 >/proc/sys/vm/swappiness

可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 30% 时才使用 SWAP 分区:

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

ref:

http://coderschool.cn/1486.html

阿里云官方说明

http://stackoverflow.com/questions/11013755/rails-assets-pipeline-cannot-allocate-memory-nodejs

Comments