编译安装报错 "virtual memory exhausted Cannot allocate memory"
在1GB内存的阿里云主机中,编译cmake时候报错,virtual memory exhausted: Cannot allocate memory
。
原因
虚拟机安装时没有设置swap或者设置内存太小。
1 | # free -mh |
1GB内存足够编译软件,这里主要是没有设置 swap
。
swap
是啥?
解决办法
增加swap大小。
创建swap文件(目录可以自己指定
1 | # dd if=/dev/zero of=/var/swap bs=1024 count=1024000 |
建立swap 启动swap 1
2
3# mkswap /var/swap
Setting up swapspace version 1, size = 1000 MiB (1048571904 bytes)
no label, UUID=83ddb587-df84-402d-84af-ce21689b3235 现在再看内存使用情况
1
2# swapon /var/swap
swapon: /var/swap: insecure permissions 0644, 0600 suggested.1
2
3
4# free -mh
total used free shared buff/cache available
Mem: 992M 158M 67M 2.6M 766M 679M
Swap: 999M 0B 999M
参考 1. 编译安装报错"virtual memory exhausted: Cannot allocate memory" 2. virtual memory exhausted: Cannot allocate memory