tencent cloud

14天试用边缘安全加速平台 EO 限时免费

文档反馈

云服务器
文档云服务器故障处理Linux 实例内存相关故障日志报错 fork:Cannot allocate memory
文档云服务器故障处理Linux 实例内存相关故障日志报错 fork:Cannot allocate memory

日志报错 fork:Cannot allocate memory

最后更新时间:2024-01-06 17:32:18

现象描述

日志中出现报错信息 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,以增加进程数。修改完成后如下图所示:



5. 执行以下命令,使配置立即生效。
sysctl -p


产品类别

文档章节

日志报错 fork:Cannot allocate memory

联系我们

联系我们,为您的业务提供专属服务。

技术支持

如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

7x24 电话支持
中国香港
+852 800 906 020 (免费)
美国
+1 844 606 0804 (免费)
英国
+44 808 196 4551 (免费)
加拿大
+1 888 605 7930 (免费)
澳大利亚
+61 1300 986 386 (免费)
EdgeOne 热线
+852 300 80699
更多本地服务热线陆续新增中