在JVisualVM中,线程数量急剧减少,而没有任何更改配置问题

时间:2013-10-30 15:13:23

标签: java multithreading jboss threadpool jvisualvm

我们正在监控JBOSS应用程序最近几天,并且看到线程数从4000到6000不等。 昨天,突然之间它降到了600-800范围并指向记下来我们没有在JBOSS或JVisualVM中进行任何配置更改。 实时峰值线程数约为6200。 现在按照图形线程计数在600-800范围内。

计数突然减少有特殊原因吗? 有什么特别的指导,在分钟级别讨论这样的细节吗? 线程数突然增加的可能根本原因是什么? 在这种情况下GC会出现吗?

感谢。

1 个答案:

答案 0 :(得分:0)

  

计数突然减少有特殊原因吗?

您很可能正在使用缓存线程池。当它们不忙时你会超时,你可以看到很多(很多我的意思是数十个线程)立即死亡。拥有比CPU更多的线程通常不是一个好主意恕我直言,甚至600-800是疯了。 IMHO。

  

是否有在特定级别讨论这样的细节的特别向导?

在线程数量非常多的系统中,通常就是这种情况,因为没有人关注正在使用的线程数或担心他们正在做什么或是否真的需要它们。我怀疑没有人可以解释为什么你需要这么多线程。

  

线程数突然增加的可能根本原因是什么?

这是你需要查看堆栈转储和线程名称以了解它们正在做什么的地方,但很可能有一个或两个缓存的线程池,其中线程的数量暂时激增。

  

在这种情况下GC会出现吗?

它不会导致问题,但是有更多的线程会减慢将所有线程都安全到执行GC所需的安全点所需的时间。有数千个线程,您可以看到GC花费更多时间等待线程到达安全点,而不是实际清理垃圾。