编译时:virtual memory exhausted: Cannot allocate memory
2016-07-13 11:36
465 查看
一、问题
当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法。二、解决方法
在执行free -m的是时候提示Cannot allocate memory:(swap文件可以放在自己喜欢的位置如/var/swap)
[html] view plain copy
[root@Byrd byrd]# free -m
total used free shared buffers cached
Mem: 512 108 403 0 0 28
-/+ buffers/cache: 79 432
Swap: 0 0 0
[root@Byrd ~]# mkdir /opt/images/
[root@Byrd ~]# rm -rf /opt/images/swap
[root@Byrd ~]# dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000
2048000+0 records in
2048000+0 records out
2097152000 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 1, size = 2047996 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: 488 481 7 0 6 417
-/+ buffers/cache: 57 431
Swap: 999 0 999
内存太小,增加内存可以解决。
使用完毕后可以关掉swap:
[html] view plain copy
[root@hz mnt]# swapoff swap
[root@hz mnt]# rm -f /opt/images/swap
swap文件也可以不删除,留着以后使用,关键是你的虚拟机硬盘够用。
相关文章推荐
- 正则表达式,非贪婪模式
- Redis如何保存数组和对象
- <artifactId>maven-compiler-plugin</artifactId>
- JLINK刷固件那些事
- boost thread学习
- (转)Android Criteria
- Estimation and learing
- Merkle Tree算法
- 响应式
- 深入理解Java内存模型(六)——final
- nyoj 8 一种排序
- 简单的词法分析和语法分析(C++实现,CodeBlocks+GCC编译)
- crontab
- Hadoop环境搭建
- Memset、Memcpy、Strcpy 的作用和区别
- mac安装与卸载mysql方法
- linux虚拟机VMware vSphere上安装VMware Tools
- python+adb+monkey实现Rom稳定性测试
- 打造便携式sublime text 编辑器
- java微信 客服接口-发消息 中文乱码