Centos7 编译过程中遇到 virtual memory e

2020-03-06  本文已影响0人  牍中玉的小木屋

问题

在编译的时候(make),发生了错误

virtual memory exhausted: Cannot allocate memory
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

本以为是一个很特殊的错误,就上网找了一下解决方案,发现这个问题还挺常见的:是关于内存不足的问题。于是记录了这次解决过程,方便以后回顾。

解决方法

使用 free 查看内存使用情况

查看内存使用情况

第一行 Mem,表示物理内存统计:

  • total 物理内存总量,total = used + free
  • used 总计分配给缓存(包含 buffers 与 cache )使用的数量,但其中可能部分缓存并未实际使用
  • free 未被分配的内存
  • shared 共享内存,一般系统不会用到,总是0
  • buffers 系统分配但未被使用的 buffers 数量
  • cached 系统分配但未被使用 cache 数量
    第二行 -/+ buffers/cache:
  • used 实际使用的内存,等于第一行的 used + buffers - cached
  • free 实际可用内存,等于第一行的 free + buffers + cached
    第三行 swap 表示交换分区的使用情况,也就是我们通常所说的虚拟内存
  • total 总量
  • used 使用
  • free 空闲

创建 swap

mkdir /home/images
rm -rf /home/images/swap
dd if=/dev/zero of=/home/images/swap bs=1024 count=2048000
mkswap /home/images/swap
swapon /home/images/swap
free -m
开启虚拟内存之后的内存使用情况
swapoff /home/images/swap
rm -rf /home/images/swap
rm -rf /home/images
free -m
上一篇下一篇

猜你喜欢

热点阅读