尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
k8s的pod容器中微服务无法创建新线程unable to create new native thread
问题b642798223462d2b09dd0efc95121084__fallback_source1height1280mount_node_tokenOxMCdNqYHop7Nvxm3hecTZqJnPGmount_pointdocx_imagepolicyequalwidth1280Caused by: java.lang.OutOfMemoryError: unable to create new native thread这是困扰了我们一个很久的OOM问题经常在一个节点上面多服务压力上来时出现表面上是一个程序OOM但具体又是里面的一个分支 线程问题。出现的症状是不只是说一个服务是跑在同一个节点上的所有服务而且是需要创建新线程的服务都出现无法创建新线程的异常日志从节点的资源上看CPU和内存资源都还比较充足只使用到了一半。我们查看这个节点上的总线程数如下图趋势72b051f7a67a39c1e3fc66fbca277587__fallback_source1height1280mount_node_tokenG0AydTLlIoPjLzxit4Vc2sgQnCbmount_pointdocx_imagepolicyequalwidth1280经常性出现从经验上来看节点的总线程数到达32000后无不例外就有服务出现了unable to create new native thread的异常而且比较坑的是此异常对服务的/actuator/health 健康检测接口无法探测即此接口状态返回UP导致服务不会重启但服务又无法接收新请求。接下来查看节点的总线程数设置未设置之前。宿主机上执行内核级最大线程数如果不文件不存在则手动加一个cat /proc/sys/kernel/threads-max返回32768最大PID值cat /proc/sys/kernel/pid_max返回32768当前用户可创建的最大进程/线程数(nproc)ulimit -u返回32768#查看最大线程数内核参数 通常 32768sysctl kernel.pid_max返回32768cat /etc/security/limits.conf设置之后的c98553a03b6ac9d9d107f6118596495e__fallback_source1height1280mount_node_tokenLivVdZGtwoCb3Jxc4gwcFWf3n4cmount_pointdocx_imagepolicyequalwidth1280从以上几个指令查看结果来看确实是总线程数限制到了32000。解决用户可创建的最大线程数 min (max user processes, threads-max, pid_max)当然先止血先调大宿主机节点的总线程数都拉到最大655350提升系统级线程数上限当前 32768 可能不够sysctl -w kernel.threads-max655350sysctl -w kernel.pid_max655350持久化echo “kernel.threads-max 655350” /etc/sysctl.confecho “kernel.pid_max 655350” /etc/sysctl.confsysctl -p调整用户级 nproc 限制 /etc/security/limits.conf 追加root soft nofile 655350root hard nofile 655350soft nofile 655350hard nofile 655350调整系统进程数配置在/etc/sysctl.conf添加最大进程和线程数量配置kernel.pid_max655350kernel.threads-max655350执行sysctl -p加载并应用内核参数执行sysctl -a |grep threads-max和sysctl -a |grep pid_max进行验证。目前根据运维提供的资料将系统里面能改的参数都改了但……将服务启动过了不久仍然还有服务报无法创建新线程的异常。至此开始怀疑是不是配置没生效但从ulimit -a的一些指令来看都是没问题的那就唯一一条路重启大法。也许是需要将服务器重启才能生效。于是建议将服务器进行了重启结果总线程数终于能突破32000至此配置生效。当然 也要同时优化程序代码从宿主机上统计应用时发现有多个java应用线程数达到4000以上甚至到了8000多多个服务加一起总数肯定会超32000。
RELATED

相关推荐

成为一站式线路板方案服务商要达到哪些硬核指标?

成为一站式线路板方案服务商要达到哪些硬核指标?

成为一站式线路板方案服务商要达到哪些硬核指标? 一站式线路板方案服务商:定义、核心价值与准入标准深度解析 在电子硬件研发与制造领域,“一站式线路板方案服务商”正逐渐成为推动产业创新的核心力量。这类服务商打破了传统电子产业链中设计…

📅 2026/8/23 17:16:45
C++ Builder串口通信实战:工业级上位机开发与协议解析

C++ Builder串口通信实战:工业级上位机开发与协议解析

1. 项目概述:为什么今天还要搞串行通信?在万物互联、高速网络满天飞的时代,一提到“串行通信”,很多刚入行的朋友可能会觉得这玩意儿是不是有点“复古”了?USB、以太网、Wi-Fi、蓝牙,哪个不比它快、不比它方…

📅 2026/8/23 17:16:45
C++异步IO库深度对比:Boost.Asio、libuv、C++ REST SDK与WebSocket++实战解析

C++异步IO库深度对比:Boost.Asio、libuv、C++ REST SDK与WebSocket++实战解析

1. 项目概述:为什么我们需要深入理解异步IO库?如果你写过网络程序,尤其是用C/C这类“贴近系统”的语言,大概率踩过同步阻塞IO的坑。想象一下,你的服务器程序正在为一个客户端下载大文件,整个线程就卡在read…

📅 2026/9/10 10:04:12
MORE NEWS

更多资讯

📰

dcode 如何用 -r 恢复历史会话并查看线程列表?

dcode 如何用 -r 恢复历史会话并查看线程列表? 【免费下载链接】deepagents The batteries-included agent harness. 项目地址: https://gitcode.com/GitHub_Trending/de/deepagents deepagents-code(CLI 命令名为 dcode)是 deepagent…

📰

用南瓜数据重做 Web App:在 ML-For-Beginners 中替换模型并部署

用南瓜数据重做 Web App:在 ML-For-Beginners 中替换模型并部署 【免费下载链接】ML-For-Beginners 12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all 项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners 导读 本篇文…

📰

docker-minecraft-server CurseForge模组包自动安装失败速查:4步彻底解决

docker-minecraft-server CurseForge模组包自动安装失败速查:4步彻底解决 【免费下载链接】docker-minecraft-server Docker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and m…

📰

VPI中SOA光放大仿真:参数映射、增益噪声提取与发散排查

简介:这是一个面向光纤通信与光子学研究者的半导体光放大器(SOA)MATLAB仿真资源,压缩包内仅含1个m源码文件,大小约1KB,基于VPI仿真思路构建,可复现SOA的增益、饱和、自发辐射噪声以及四波混频等…

📰

3 步替换默认 malloc:mimalloc 低延迟内存分配器接入实战

3 步替换默认 malloc:mimalloc 低延迟内存分配器接入实战 【免费下载链接】mimalloc mimalloc is a compact general purpose allocator with excellent performance. 项目地址: https://gitcode.com/GitHub_Trending/mi/mimalloc mimalloc 是微软开源&#…

📰

C语言文件操作全解析:从基础到高级技巧

1. C语言文件操作基础概念在C语言中,文件操作是程序与外部存储介质交互的重要方式。文件读取操作主要涉及三个核心步骤:打开文件、读取内容和关闭文件。这三个步骤构成了文件处理的基本流程,任何文件操作都离不开这个基本框架。文件指针&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬