为什么卡住线程而不是争用,比如缓慢的IO,慢速后端(DB查询,Web服务,rmi调用)?

问题描述 投票:0回答:1

我试图找出卡住线程的主要原因是什么。现在,在WebLogic Server中,如果线程在一段时间内持续工作(非空闲),则会将其诊断为卡住。如果用户希望他/她可以通过更改线程被诊断为卡住(Stuck Thread Max Time)之前的时间长度,以及通过更改服务器检查卡住线程的频率来调整服务器的线程检测行为。我的分析是由于争用或不同的原因造成的,如缓慢的IO,慢后端(DB查询,Web服务,rmi调用)......很少是由错误的编码或大数据(无限的lops)引起的。

除了上述原因,还有更多原因导致线程卡住?

weblogic thread-dump
1个回答
1
投票

不知道你的问题在这里,这是我的2美分

  • 错误编码可能导致线程卡住 比如开发人员使用所有servlet需要访问的单例映射或散列等...当你有高负载时,它可能导致争用该资源并导致线程卡住。
  • 运行缓慢的服务器(高CPU)可能导致卡住线程
  • 有时WLS中的错误可能导致它忙于内部进程导致线程卡住......就像WLS卡在集群通信中一样。
  • 当管理服务器等待从失败的受管服务器收听时,您甚至可能卡住线程。

列表可以继续下去。只需在短时间内进行3-4次线程转储就可以确定原因。

© www.soinside.com 2019 - 2024. All rights reserved.