我正在使用 WebLogic 的监控仪表板(它允许我们以图形方式监控 MBean,请参见附图)。
我正在监控:ExecuteThreadTotalCount、ExecuteThreadIdleCount、HoggingThreadCount 和 StandbyThreadCount。
我预计 ExecuteThreadTotalCount 等于其他指标的总和,但它总是高出许多。
有谁知道丢失线程的状态是什么?
谢谢
最佳答案
在 WebLogic 11g 中,线程的可能状态是:
- 备用(即在当前不需要的线程由 WebLogic 放置的池中)
- 空闲(准备接受新请求)
- Activity (请求正在执行)
- 霸占(请求执行时间过长)
- 卡住(超过配置的 StuckThreadMaxTime)
所以我认为在您的计数中您缺少“Activity ”和“卡住”线程。不幸的是,这些计数器在 weblogic.management.runtime.ThreadPoolRuntimeMBean
中似乎不可用,因此您必须自己找到计数器(可能在线程列表上迭代...)。
另见 WebLogic 11g (10.3.6) admin console - servers,monitoring,threads .
根据我的经验,所有现成的计数器都可能受到问题的影响并获得错误的数据,尤其是当系统遇到其他问题(异常、错误……)时:正如您可能理解的那样,错误条件或错误可能会导致计数器错误更新。
关于java - 在 WebLogic JMX : What is the status of threads that are not Idle, 占用或备用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18711885/