在云服務(wù)器上運(yùn)行Java程序、用GCC編譯、運(yùn)行Ruby腳本都有可能報(bào)Cannot Allocate Memory這個(gè)錯(cuò)誤。
造成這個(gè)錯(cuò)誤的原因是:云服務(wù)器默認(rèn)沒有掛載Swap分區(qū)。
# 創(chuàng)建一個(gè)全0填充的2GB文件。InputFile利用Linux系統(tǒng)的/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分區(qū)
sudo swapon /mnt/2GB.swap
# 檢查是否成功掛載。Swap那一行現(xiàn)在就不是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,使開機(jī)時(shí)自動掛載Swap文件為Swap分區(qū)
sudo vim /etc/fstab
# 在/ect/fstab中添加
/mnt/2GB.swap none swap sw 0 0