Linux用户最大线程数查看&案例分享

场景:

压力测试,一直测试一个接口,比如30秒内访问2W次,Java程序报错 "内存溢出,没有可用的线程"

分析:

线程数达到上限,可能是用户线程数达到峰值。

Linux 当前用户下输入以下命令  可以查看当前用户可用的最大线程数 

ulimit -a

可用JProfiler连接该Java进程,线程视图下查看,可查看当前线程数量 和 具体堆栈信息。

发现确实线程数已达到25000+,确定达到当前用户最大线程数,分析代码,该接口每次任务需要启动一个线程进行后台操作,短时间内不能操作完成并关闭,导致线程积压。

解决:

1、同一IP 限流(Tomcat filter实现)

参考博客:

1、https://www.cnblogs.com/princessd8251/articles/3914434.html

2、https://blog.csdn.net/bluetjs/article/details/53021462

猜你喜欢

转载自blog.csdn.net/zangdaiyang1991/article/details/84135603