现象描述
日志中出现报错信息 “fork:Cannot allocate memory”。如下图所示:
可能原因
可能是进程数超限导致。系统内部的总进程数达到了 pid_max
时,再创建新进程时会报 “fork:Cannot allocate memory” 错。
解决思路
1. 参见 处理步骤,查看实例内存使用率是否过高。2. 核实总进程数是否超限,并修改总进程数 pid_max
配置。
处理步骤
1. 参见 内存使用率过高问题处理 ,查看实例是否内存使用率过高。若实例内存使用率正常,则执行下一步。2. 执行以下命令,查看系统 pid_max
值。
sysctl -a | grep pid_max
根据返回结果,进行对应操作:返回结果如下图所示,pid_max
默认值为32768,请执行下一步。
返回报错信息 “fork:Cannot allocate memory”,则需执行以下命令,临时调大 pid_max
。
echo 42768 > /proc/sys/kernel/pid_max
您可再次执行命令,查看系统 pid_max
值。3. 执行以下命令,查看系统内部总进程数。
pstree -p | wc -l
若总进程数达到了 pid_max
,则系统在创建新进程时会报 “fork Cannot allocate memory” 错。说明您可执行 ps -efL
命令,定位启动进程较多的程序。4. 将 /etc/sysctl.conf
配置文件中的 kernel.pid_max
值修改为65535,以增加进程数。执行以下命令,设置系统 pid_max 值echo “kernel.pid_max=65535” >> /etc/sysctl.conf修改完成后如下图所示:
5. 执行以下命令,使配置立即生效。
sysctl -p
对腾讯云CVM服务器有疑惑?想了解产品收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/17369.html