全国服务热线:13864198606

新闻中心 PRODUCT DISPLAY

安化fork失败,无法创建新的线程怎么办?

来源: 发布时间:2024-07-02 908 次浏览

问题描述Linux操作系统的ECS,在执行命令或者日志打印时,出现如下报错信息:错误信息1:root

问题描述
Linux操作系统的ECS,在执行命令或者日志打印时,出现如下报错信息:
错误信息1:
root@localhost:~# free -g
            total       used       free     shared     buffers   cached
Mem:         94          43         51        0           0        0
Swap:        19          0         19
root@localhost:~# uname -a
-bash: fork: Cannot allocate memory


华为云官网__云商平台__华为cloud

错误信息2:
xxxxsshd2[23985]: fatal: setresuid 20054: Resource temporarily unavailable
xxxxsshd2[28377]: Disconnecting: fork failed: Resource temporarily unavailable
xxxxsshd2[4484]: Disconnecting: fork failed: Resource temporarily unavailable
错误信息3:
[root@ecs-xxxx ~]$ sudo docker info
runtime/cgo: pthread_create failed: Resource temporarily unavailable
SIGABRT: abort
根因分析
通常情况,出现上述错误由于创建线程失败,可能原因是ECS系统内存不足,系统当前的线程数达到了配置的更大值。
处理方法
登录管理控制台。
通过ECS的主机监控功能的“内存使用率”指标,查看云服务器内存使用情况确认云服务器内存情况,详细操作,请参见查看监控指标。 如果内存不足,建议建议扩容内存或者优化内存的使用,扩容内存可参考变更规格通用操作。
否则,执行步骤3。
以root用户登录云服务器,执行以下命令,排查message和dmesg日志。dmesg -T
cat /var/log/messages 如果出现如图1所示的cgroup相关报错打印,执行步骤8。
否则,执行步骤4。 图1 日志报错
 
执行以下命令,查看当前系统线程总数。ps -efL | wc -l
执行以命令,将得到的两个值与步骤4查到的当前系统线程总数进行对比。sysctl -a | grep pid_max
sysctl -a | grep threads-max
如果当前系统线程总数接近这两个值其中一个,那么就需要对这pid_max、threads-max这两个参数进行调优。调优步骤请参考调优pid_max、threads-max参数。
否则,执行步骤6。
执行以下命令,确定报错进程的pid。ps -ef | grep 报错进程名
执行以下命令,根据得到的pid检查该进程的limits配置:cat /proc/pid/limits
图2 确定进程limits配置
 
查看Max processes行,如果当前用户创建的所有线程数接近该值,那么需要对limits参数进行调优,调优步骤请参考调优limits参数。
否则,执行步骤8。

执行以下命令,根据日志的cgroup报错可以得到当前报错的具体的cgroup目录。cat /sys/fs/cgroup/pids/拼接日志中报错目录/pids.max
cat /sys/fs/cgroup/pids/拼接日志中报错目录/pids.current
图3 cgroup目录
 
示例如下:
执行以下命令,根据进程的pid查找对应的cgroup目录。cat /proc/pid/cgroup
图4 根据pid查找对应的cgroup目录
 
返回结果中的pids行为“/user.slice/user-0.slice/session-5.scope/”,与/sys/fs/cgroup/pids/拼接,可得进程对应的cgroup目录为“/sys/fs/cgroup/pids/user.slice/user-0.slice/session-5.scope/”。
执行以下命令,根据日志的cgroup报错可以得到当前报错的具体的cgroup目录。cat /sys/fs/cgroup/pids/user.slice/user-0.slice/session-5.scope/pids.max
cat /sys/fs/cgroup/pids/user.slice/user-0.slice/session-5.scope/pids.current
如果pids.current接近pids.max,那么需要对cgroup参数进行调优,调优步骤请参考调优cgroup参数。
否则,请提交工单联系技术支持处理。
相关命令
调优pid_max、threads-max参数 由于不同操作系统发行版默认参数不一致,执行以下命令,查询当前配置参数。sysctl -a | grep pid_max
sysctl -a | grep threads-max
执行以下命令,修改pid_max、threads-max参数。echo 'kernel.pid_max = 4194304' >> /etc/sysctl.conf
echo 'kernel.threads-max = 4194304' >> /etc/sysctl.conf
执行以下命令,使配置生效。sysctl -p
调优limits参数 以启动报错业务进程的用户登录云服务器,执行以下命令查询当前配置参数。ulimit -u
执行以下命令,根据业务需求和当前值评估,配置合适的nproc上限。以root用户nproc配置100000为例:
echo 'root soft nproc 100000' >> /etc/security/limits.conf
echo 'root hard nproc 100000' >> /etc/security/limits.conf
重新登录云服务器,执行以下命令确认配置是否生效。ulimit -u
回显值如果是步骤2配置的值,表示配置已经生效,在该session重启业务进程即可。
否则,请提交工单联系技术支持处理。
调优cgroup参数 临时修改方案:执行以下命令,以将相关cgroup临时修改上限为更大为例,修改当前超出限制的cgroup目录。
echo max > /sys/fs/cgroup/pids/user.slice/user-0.slice/session-25.scope/pids.max
修改方案:执行以下命令,以将相关cgroup设置到无穷大为例,修改当前超出限制的cgroup目录。
该值可以根据需要调整,修改完成后需要重启云服务器使配置生效。
echo DefaultTasksMax=infinity >>/etc/systemd/system.conf
echo DefaultTasksMax=infinity >>/etc/systemd/user.conf
echo UserTasksMax=infinity >>/etc/systemd/logind.conf



华为云共建智能世界云底座[52] 华为公有云专属云主机DeH服务[51] 华为云场景化解决方案[49] 华为公有云产品[44] 华为云云主机[43] 华为云产品服务[43] 华为云服务器应用[43] 华为弹性云服务器[39] 华为公有云架构解决方案[38] 华为云提供的服务[37] 华为虚拟私有云vpc[37] 华为公有云介绍[32] 华为公有云提供哪些计算服务[30] 华为云漏洞扫描[27] 华为云软件开发服务[27] 华为公有云和私有云区别[27] 华为云域名注册[26] 华为云官网登陆[26] 华为公有云解决方案[26] 华为私有云产品有哪些[26] 华为私有云服务[25] 华为云数据库[23] 华为云安全[22] 华为公有云官网[22] 华为私有云的搭建方案[22] 华为云弹性云服务器应用[21] 华为公有云平台[20] 华为公有云行业解决方案[20] 华为私有云解决方案服务定制领导者[20] [19] 华为私有云服务器[19] 华为私有云网格结构[19] 华为公有云视讯解决方案[18] 华为云官网[17] 华为云速建站[17] 华为私有云架构[17] 华为云优势[16] 华为云服务器[16] 华为私有云部署架构[16] 华为云企业邮箱服务 (SAAS[15] 华为云邮箱[15] 华为公有云是什么[15] 华为公有云架构[15] 华为云迁移解决方案[14] 华为公有云解决方案服务定制领导者[14] 华为私有云解决方案[14] 云邮箱)[13] 华为云园区解决方案[13] 华为云服务总代理[13] 华为云速智能客服[13] 华为公有云服务[13] 华为私有云搭建方案[13] 云与计算咨询服务[12] 云与计算培训服务[11] 华为云备份[11] 华为云服务器配置[11] 华为云服务服务中心[11] 华为云服务核心分销商[11] 华为公有云[11] 华为私有云搭建[11] 云迁移与运营支撑服务[10] 公有云私有云混合云[10] 华为云服务器ECS[10] 华为云服务器成功案例[10] 华为云解决方案[10] 华为公有云通用解决方案[9] 华为智慧云课堂解决方案[9] 华为云数据解决方案[8] 华为云是什么[8] 华为私有云平台[8] 云与计算客户支持与运维使能服务[7] 华为云官网网站[7] 华为云智慧教育解决方案[7] 华为云智慧校园解决方案[7] 华为云桌面系统集成商[7] 华为云经销商[7] 华为代理公司有哪些[7] 华为私有云方案[7] 智慧教育云平台解决方案[7] 华为云服务器试用[6] 华为云网站建设服务器[6] 华为手机代理加盟[6] 华为私有云[6] 大数据使能服务[6] 智慧教育云计算解决方案[6] 华为云云主机 [5] 华为云智慧***解决方案[5] 华为云桌面总代理商[5] 云与计算客户支持服务[4] 华为云产品介绍[4] 华为云智慧制造解决方案[4] 华为云场景化解决方案[3] 华为公有云官网[3] 华为公有云通用解决方案[3] 华为弹性云服务器[3] 华为公有云产品 [3] 华为云产品服务[2] 华为云域名注册[2] 华为云数据库[2] 华为云智慧校园解决方案[2] 华为云服务器应用[2] 华为云服务器成功案例[2] 华为云软件开发服务[2] 华为公有云产品[2] 华为公有云介绍[2] 华为公有云和私有云区别[2] 华为公有云服务[2] 华为公有云架构[2] 华为公有云架构解决方案[2] 华为公有云视讯解决方案[2] 华为公有云解决方案[2] 华为私有云产品有哪些[2] 华为私有云服务[2] 华为私有云架构[2] 智慧教育云计算解决方案[2] 云规划设计与实施服务[2] 云邮箱[2] 华为云产品报价[2] 华为公有云通用解决方案 [2] 华为云服务器成功案例[1] 华为云桌面系统集成商[1] 云与计算客户支持与运维使能服务[1] 云迁移与运营支撑服务[1] 云迁移与运营支撑服务 [1] 华为云共建智能世界云底座[1] 华为云备份[1] 华为云安全[1] 华为云官网登陆[1] 华为云弹性云服务器应用[1] 华为云提供的服务[1] 华为云数据解决方案[1] 华为云智慧制造解决方案[1] 华为云服务器[1] 华为云服务核心分销商 [1] 华为云漏洞扫描[1] 华为云迁移解决方案 [1] 华为云速智能客服[1] 华为云邮箱[1] 华为公有云专属云主机DeH服务[1] 华为公有云是什么[1] 华为公有云行业解决方案[1] 华为私有云搭建[1] 华为私有云方案[1] 华为私有云服务.华为公有云专属云主机DeH服务.华为云产品报价[1] 华为私有云的搭建方案[1] 华为私有云网格结构[1] 华为私有云解决方案[1] 华为私有云部署架构[1] 为云产品服务[1] 云与计算咨询服务 [1] 云与计算客户支持与运维使能服务 [1] 云与计算客户支持与运维使能服务 云与计算客户支持服务[1] 华为云是什么 [1] 华为云软件开发服[1] 华为云速智能客服 [1] 华为代理加盟[1] 华为公有云架构解决方案 [1] 华为公有云解决方案服务定制领导者 [1] 华为弹性云[1] 华为弹性云服务器 华为云域名注册 华为云服务器应用[1] 华为私有云搭建 [1] 华为私有云搭建方案 [1] 华为私有云部署架构 [1] 大数据使能服务 [1] 撒[1]
相关标签: