Linux线程数过多会导致系统负载升高、内存耗尽、调度延迟增大甚至触发OOM Killer,应通过定位源头、设置ulimit限制、调优内核参数及优化应用线程模型来综合治理。

Linux线程数过多会导致系统负载升高、内存耗尽、调度延迟增大,甚至触发OOM Killer。关键不是单纯“杀线程”,而是定位源头、合理设限、优化程序行为。
查清谁在创建大量线程
先确认是哪个进程或服务导致线程暴增:
- 用 ps -eLf | awk '{print $2}' | sort | uniq -c | sort -nr | head -10 查看线程数最多的前10个进程ID(PID)
- 再用 ps -T -p PID 查看该进程下所有线程的详细状态(LWP列即线程ID)
- 结合 cat /proc/PID/status | grep Threads 验证线程总数
- 若为Java应用,可加 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps 并检查是否因线程池未复用、new Thread()滥用导致
限制单进程最大线程数(ulimit)
防止某个进程无节制创建线程,可在启动前设置用户级限制:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~