标签: thread-dump

一旦服务器进入低线程计数状态,有没有办法触发WebLogic服务器的线程转储?

我们有一个WebLogic设置,它给我们带来了一些问题.

我们有一个名为HP BAC的监视工具,它可以帮助我们可视化服务器的状态,我们将此工具与Java Thread Dump实用程序联系起来,这样当线程数较少时,将捕获一个线程转储.

在某些情况下服务器进入低线程计数状态,我们不确定为什么,因为我们所有的努力通过线程转储特别是徒劳无功.

鉴于"现状",我们的线程转储捕获总是在后期/之后触发,并且永远不会捕获对我们的调查有用的线程转储.

我想看看你们其他人如何进行这样的监测工作?

在此输入图像描述

weblogic thread-dump java-ee

4
推荐指数
3
解决办法
3601
查看次数

Java线程的状态到底是什么意思?

我正在Android Studio中学习该工具,获取线程转储,如下所示:

获取线程转储

我注意到每个线程的状态都不同,

在此处输入图片说明

我可以看到有runnablesleepingwaiting。我深入线程堆栈,大多数这样的线程堆栈,

"<61> RxComputationScheduler-3@830064517520" daemon prio=5 waiting
    java.lang.Thread.State: WAITING
        at java.lang.Object.wait(Object.java:-1)
        at java.lang.Thread.parkFor(Thread.java:1205)
        at sun.misc.Unsafe.park(Unsafe.java:325)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1050)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:778)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:841)
Run Code Online (Sandbox Code Playgroud)

我很困惑,他们这样做都停止Object.wait,但线程的状态可以是runnablesleepingwaiting

这是另一个状态线程的堆栈。

RUNNABLE

<53> RxSchedulerPurge-1@830057651944" daemon prio=5 runnable
  java.lang.Thread.State: RUNNABLE
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Thread.parkFor(Thread.java:1205)
      at sun.misc.Unsafe.park(Unsafe.java:325)
      at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2056)
      at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1062)
      at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:778)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
      at java.lang.Thread.run(Thread.java:841)</code>
Run Code Online (Sandbox Code Playgroud)

TIMED_WAITING …

java performance android thread-dump thread-state

4
推荐指数
1
解决办法
703
查看次数

BLOCKED 线程会导致高 CPU 消耗吗

我们最近在我们的生产环境中看到了一个 CPU 消耗高的问题,并且在调试时看到了一些奇怪的东西。当我执行“top -H”以查看每个线程 ID 的 CPU 统计信息时,我发现线程 X 消耗了大量 CPU。当我进行线程转储时,我看到这个线程 X 处于 BLOCKED 状态。这是什么意思,处于 BLOCKED 状态的线程可以消耗高 CPU 吗?我认为这可能是一个微不足道的问题,但我是调试性能问题和 JVM 的新手,不确定我在这里可能遗漏了什么。

jvm cpu-usage thread-dump apm

3
推荐指数
1
解决办法
2992
查看次数

将 VisualVM 窗口连接到 Wildfly 16

如何将 VisualVM 连接到 Wildfly 10?

我已将 jboss-client jar 放入以下文件夹中并启动了 Visual vm: 在此输入图像描述

然后我开始了视觉虚拟机 在此输入图像描述

当我添加 jmx 连接时,我得到以下信息: 在此输入图像描述

谁能建议这里出了什么问题?我没有进行任何身份验证(不确定它将具有什么身份验证,因为控制台有管理员/密码,但在其他地方没有设置密码)。

谁能建议这里出了什么问题?

(我有多个服务器组,不确定在domain.xml 中的何处添加“remoting-connector use-management-endpoint=”true”。我只添加了 1 个服务器组。)

visualvm thread-dump wildfly wildfly-16

3
推荐指数
1
解决办法
2747
查看次数

如何解释Java线程转储?

我在这里使用Ubuntu(服务器版)在Tomcat6上运行了一个Java Web应用程序.1-3天之后,应用程序变得非常慢,所以我在重新启动tomcat之后创建了一个threaddump,当应用程序开始变慢时我创建了另一个:

重新启动后的Threaddump:

3天后的Threaddump(申请现在很慢):

从我发布的转储中,我可以看到有很多线程由于某种原因似乎没有终止.不幸的是,我不知道哪些(类名?)和原因.top在控制台上使用显示"VIRT"的值从~800(重新启动后)上升到超过4000(3天后).

我怎样才能更好地解释这些转储?我已经尝试将它们加载到TDA中,但这不起作用(TDA似乎没有将它们识别为转储).

也许有人已经在转储中看到发生了什么?

java thread-dump

2
推荐指数
1
解决办法
7894
查看次数

等待锁定已锁定对象的Java线程

分析线程转储,我有许多线程正在等待锁定已经锁定的监视器.在下面的示例中,同时提取并锁定监视器0x000000044158d3d0.

关于这个案子的任何线索?

"ORB Run Thread" #124 prio=5 os_prio=0 tid=0x00007f16a81b6800
nid=0x76f3 in Object.wait() [0x00007f165eef2000]   
java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x000000044158d3d0> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:502)
    at com.sun.corba.se.impl.orb.ORBImpl.run(ORBImpl.java:1238)
    - locked <0x000000044158d3d0> (a java.lang.Object)
    at org.wildfly.iiop.openjdk.service.CorbaORBService$ORBRunner.run(CorbaORBService.java:241)
    at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)

java thread-dump

2
推荐指数
1
解决办法
781
查看次数

解释tomcat线程转储并诊断死锁

我有以下线程转储(见下文),我不确定我是否有死锁.

任何人都可以建议吗?

2013-03-22 08:52:59
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007f68e8001000 nid=0x41bd waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800 nid=0x41b5 in Object.wait() [0x00007f690cc57000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000007e8fc4650> (a org.apache.commons.pool.impl.GenericObjectPool$Latch)
    at java.lang.Object.wait(Object.java:503)
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
    - locked <0x00000007e8fc4650> (a org.apache.commons.pool.impl.GenericObjectPool$Latch)
    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:70)
    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292)
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169)
    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)
    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)
    at …
Run Code Online (Sandbox Code Playgroud)

tomcat deadlock spring-mvc thread-dump

1
推荐指数
1
解决办法
5127
查看次数