一、问题
当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法。
二、解决方法
在执行free -m的是时候提示Cannot allocate memory:
(swap文件可以放在自己喜欢的位置如/var/swap)
[html] view plain copy
- [[email protected] byrd]# free -m
- total used free shared buffers cached
- Mem: 512 108 403 0 0 28
- -/+ buffers/cache: 79 432
- Swap: 0 0 0
- [[email protected] ~]# mkdir /opt/images/
- [[email protected] ~]# rm -rf /opt/images/swap
- [[email protected] ~]# 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
- [[email protected] ~]# 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
- [[email protected] mnt]# swapon /opt/images/swap
- [[email protected] 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
- [[email protected] mnt]# swapoff swap
- [[email protected] mnt]# rm -f /opt/images/swap
swap文件也可以不删除,留着以后使用,关键是你的虚拟机硬盘够用。
时间: 2024-10-12 18:08:34