安装nginx时,需要配置nginx运行环境,首先要安装gcc(c++环境),安装gcc时,报错了,信息如下:
Error downloading packages:
cpp-4.8.5-36.el7_6.2.x86_64: [Errno 5] [Errno 12] Cannot allocate memory
libstdc++-4.8.5-36.el7_6.2.x86_64: [Errno 5] [Errno 12] Cannot allocate memory
libgcc-4.8.5-36.el7_6.2.x86_64: [Errno 5] [Errno 12] Cannot allocate memory
gcc-c++-4.8.5-36.el7_6.2.x86_64: [Errno 5] [Errno 12] Cannot allocate memory
gcc-4.8.5-36.el7_6.2.x86_64: [Errno 5] [Errno 12] Cannot allocate memory
libgomp-4.8.5-36.el7_6.2.x86_64: [Errno 5] [Errno 12] Cannot allocate memory
libstdc++-devel-4.8.5-36.el7_6.2.x86_64: [Errno 5] [Errno 12] Cannot allocate memory
可能是两种原因导致的:
一、线程满了(概率有点小,先看是不是下边的 二 导致的)
排查及解决方法 参考 https://www.cnblogs.com/ydkzf-qiu/p/10237183.html
查看系统进程上限:
sysctl kernel.pid_max
查看当前已用进程数 :
ps -eLf | wc -l
对比结果,如果两个进程数值很接近,那么需要修改系统最大进程数配置,并使之生效,然后看是否能解决问题。
二、运行内存占用率高(大概率是这个问题导致的)
可能是系统的运行内存不足以执行当前命令执行的任务,内存不够了,看下linux还有多少内存吧:
free -m
命令中的-m表示结果用M为单位展示数据。
结果中显示,总内存为991M,已使用746M,剩余为183M,空闲可用的为99M(我也不知道我理解的这些参数意思对不对,凑合看吧)。
再看看CPU和内存的使用情况:
top
好像没啥大问题,Control+C退出查看。
java内存好像占用率挺高的,关掉一个没用的进程试试:
关掉一个java进程后,free命令查看空闲可用内存,465。。。 好,重新执行报错的命令试试:
执行成功。
再回头把我刚才关掉的java程序重新启动起来吧。。
服务器跑了一个若依项目,项目概览里看了下服务器的使用情况:
剩余内存0.09G。。。和free -m命令返回的数据差不多。
都是泪。
所以,阿里云不能贪便宜买最低配的,以后最低2G运行内存起买吧。 坑到自己了
参考:
https://www.jianshu.com/p/209f536503d0
https://www.cnblogs.com/ydkzf-qiu/p/10237183.html
https://blog.csdn.net/xmtblog/article/details/82792175
https://www.cnblogs.com/ylss/archive/2017/07/20/7212165.html