編譯安裝php時遇到virtual memory exhausted: Cannot allocate memory,開啓swap內存交換空間即可解決。

是因爲物理內存太小,可以開啓swap內存交換空間來解決

先用free -m查看是否有swap空間:

#free -m

total used free shared buffers cached
Mem: 504 471 32 0 19 269
-/+ buffers/cache: 183 321
Swap: 0 0 0
如果這行是這樣的情況可以往下走

1、創建用於交換分區的文件

 dd if=/dev/zero of=/mnt/swap bs=1024 count=2048000
 其中count代表swap大小

這裏寫圖片描述

Linux中的交換分區的大小分配推薦法則

內存小於4GB時,推薦不少於2GB的swap空間;
內存4GB~16GB,推薦不少於4GB的swap空間;
內存16GB~64GB,推薦不少於8GB的swap空間;
內存64GB~256GB,推薦不少於16GB的swap空間。

2、設置交換分區文件

mkswap /mnt/swap

這裏寫圖片描述

3、立即啓用交換分區文件

swapon /mnt/swap
cat /etc/rc.local
如果在/etc/rc.local中有swapoff -a 需要修改爲swapon -a, 沒有的話忽略即可。

這裏寫圖片描述

4、設置開機時自啓用swap分區

需要修改文件/etc/fstab中的swap行,如果沒有增加一行即可。

添加 /mnt/swap swap swap defaults 0 0

注:/mnt/swap 路徑可以修改,可以根據創建的swap文件具體路徑來配置。(全部按照文中來操作的可以直接複製)

這裏寫圖片描述
設置後可以執行free -m命令查看效果
這裏寫圖片描述

原文來源:http://www.linuxls.net/network/638.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章