原文链接:http://blog.csdn.net/taiyang1987912/article/details/41695895
一、问题
当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序可能会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法解决。
二、解决方法
在执行free -m的时候提示Cannot allocate memory:
(swap文件可以放在自己喜欢的位置如/var/swap)
[root@Byrd byrd]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@Byrd ~]# mkdir /opt/images/
[root@Byrd ~]# rm -rf /opt/images/swap
[root@Byrd ~]# dd if=/dev/zero of=/opt/images/swap bs= count=
+ records in
+ records out
bytes (2.1 GB) copied, 82.7509 s, 25.3 MB/s
[root@Byrd ~]# mkswap /opt/images/swap
mkswap: /opt/images/swap: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version , size = KiB
no label, UUID=59daeabb-d0c5-46b6-bf52-465e6b05eb0b
[root@hz mnt]# swapon /opt/images/swap
[root@hz mnt]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
内存太小,增加内存可以解决。
使用完毕后可以关掉swap:
[root@hz mnt]# swapoff swap
[root@hz mnt]# rm -f /opt/images/swap
swap文件也可以不删除,留着以后使用,关键是你的虚拟机硬盘够用。
版权归原作者,这里仅作记录。