在云服务器上运行Java程序、用GCC编译、运行Ruby脚本都有可能报Cannot Allocate Memory
这个错误。
造成这个错误的原因是:云服务器默认没有挂载Swap分区。
# 创建一个全0填充的2GB文件。InputFile利用Linux系统的/dev/zero。bs是BlockSize。
sudo dd if=/dev/zero of=/mnt/2GB.swap bs=1M count=2048
# 把该文件格式化为Swap文件
sudo mkswap /mnt/2GB.swap
# 把该Swap文件挂载为Swap分区
sudo swapon /mnt/2GB.swap
# 检查是否成功挂载。Swap那一行现在就不是0了。
$ free -m
total used free shared buffers cached
Mem: 992 917 75 37 19 62
-/+ buffers/cache: 834 158
Swap: 2047 0 2047
# 配置fstab,使开机时自动挂载Swap文件为Swap分区
sudo vim /etc/fstab
# 在/ect/fstab中添加
/mnt/2GB.swap none swap sw 0 0