fork Cannot allocate memory -阿里云开发者社区

开发者社区> 云服务技术课堂> 正文

fork Cannot allocate memory

简介: 本章节分享一下经常会遇到 cannot allocate memory的解决方法

作者:枫凡

问题背景

image.png

image.png

执行 经常会遇到 cannot allocate memory的提示

排查方案

从提示来看,一般会认为是内存不足导致无法给进程分配内存,这种常规的解法
通过free top命令以及查看/var/log/message 是否存在oom的记录
还有一种可能
当前进程Process 比较多,占用Pid也会很多,导致无法分配pid,也会提示Cannot allocate memory

解决方案

\[root@iZ23pddtofdZ \~\]# sysctl \-a \| grep pid_max
kernel.pid_max = 32768

Linux系统有最大pid数量的限制
执行命令 可以查看到最大pid的数量限制
sysctl kernel.pid_max
默认为32768
如果该值设置比较小,当Pid较多时会影响新的Pid创建,提示Cannot allocate memory
sysctl -w kernel.pid_max=99999 临时修改pid_max
echo "kernel.pid_max=99999" >> /etc/sysctl.conf 永久修改pid_max
http://docs.alibaba-inc.com/pages/viewpage.action?pageId=401117574

版权声明:如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developerteam@list.alibaba-inc.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

云服务技术课堂,各类技术课程、最佳实践输出,来好好听课吧!

官方博客