解决Linux:[Errno 12] Cannot allocate memory问题

1. 问题起因

使用Linux(CentOS系统)安装Java,命令行提示:

Error downloading packages:

  libXcursor-1.1.15-1.el7.x86_64: [Errno 5] [Errno 12] Cannot allocate memory
  
  1:xorg-x11-font-utils-7.5-21.el7.x86_64: [Errno 5] [Errno 12] Cannot allocate memory

Cannot allocate memory,说明Linux服务器的内存分配不够。

2. 解决方法

(1)查看服务器的基本情况

swap 使用情况:

# swapon --show

结果:

NAME  TYPE SIZE USED PRIO
/swap file 260M 260M   -1

磁盘使用情况:

# df -h

结果:

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        494M     0  494M   0% /dev
tmpfs           504M     0  504M   0% /dev/shm
tmpfs           504M   58M  447M  12% /run
tmpfs           504M     0  504M   0% /sys/fs/cgroup
/dev/sda2        22G  2.7G   18G  14% /
/dev/sda1       380M  142M  218M  40% /boot
tmpfs           101M     0  101M   0% /run/user/0

(2)设定一个新的 swap 文件,并且添加权限

# fallocate -l 1G /swapfile

并且添加权限:

# chmod 600 /swapfile

效果:

-rw------- 1 root root 1.0G Oct 26 22:02 /swapfile

(3)使新建的swap 文件生效

# mkswap /swapfile
# swapon /swapfile

查看新的swap 情况:

# swapon --show

效果:

NAME      TYPE  SIZE USED PRIO
/swap     file  260M 260M   -1
/swapfile file 1024M   0B   -2

(4)把操作进行永久化,否则重启上述的操作都不会生效

cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab

(5)完成, 可以再次查看整体效果。

free -h

效果:

          total        used        free      shared  buff/cache   available
Mem:           1.0G        736M         94M         50M        176M         74M
Swap:          1.3G        259M        1.0G

参考:

  1. OSError: [Errno 12] Cannot allocate memory #5;
  2. How To Add Swap Space on Ubuntu 16.04.
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页