标签: jstack

JAVA 线程转储:等待线程太多

我在分析 vaadin 7.0 JAVA 应用程序的线程转储和用 Spring MVC 编写的集成层时遇到困难。处于等待状态的线程过多,导致应用程序在高峰时段变慢,并导致简单代码的执行延迟长达 10 秒。以下是等待线程中出现的跟踪:-

priority:5 - threadId:0x00007f98b48de800 - nativeId:0x6511 - nativeId (decimal):25873 - state:WAITING
stackTrace:
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000006d5444af0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

我在应用程序的许多地方使用 API 轮询,以下是我如何进行 API 轮询的代码:-

@Override
        public void run()
        {
            int counter = 1;

            while (true)
            {
                try
                {
                    if (counter == 1)
                        Thread.sleep(5000);
                    else
                        Thread.sleep(10000);

                    System.out.println("Call Some API");
                    if (counter …
Run Code Online (Sandbox Code Playgroud)

java out-of-memory jstack vaadin7 java-threads

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

Jstack挂起并且无法捕获堆栈信息

我的java程序挂在那里,我无法调试它。这是我尝试过的

  1. jstack $pid,挂起并且从不响应
  2. jstack -F $pid 与/proc/sys/kernel/yama/ptrace_scope == 0. 得到下面的错误
Error: -F option used
Cannot connect to core dump or remote debug server. Use jhsdb jstack instead
Run Code Online (Sandbox Code Playgroud)
  1. 然后我尝试了jhsdb jstack --pid $pid。仍然永远挂着,我得到了
Attaching to process ID 123212, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 11+28
Deadlock Detection:
Run Code Online (Sandbox Code Playgroud)

我按后CTRL+C。我有:

Attaching to process ID 123212, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 11+28
Deadlock Detection:

java.lang.RuntimeException: VM.initialize() was not …
Run Code Online (Sandbox Code Playgroud)

java freeze jstack

5
推荐指数
0
解决办法
528
查看次数

Java Swing:GUI冻结 - jstack解释

我有一个Gui应用程序,可以在串行热敏打印机上打印票据.当我点击启动此操作的按钮时,我的GUI被冻结.我认为那是因为代码是在EDT上执行的.我使用jstack确定但我不理解下面的结果:

Full thread dump Java HotSpot(TM) Client VM (23.3-b01 mixed mode, sharing):

"Thread-12" prio=6 tid=0x03012000 nid=0xd04 runnable [0x038ef000]
java.lang.Thread.State: RUNNABLE
    at gnu.io.RXTXPort.eventLoop(Native Method)
    at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)

"Thread-6" prio=6 tid=0x0302c400 nid=0x1b0 waiting on condition [0x039ef000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at posO2.Threads.ThreadHorloge.run(ThreadHorloge.java:46)

"Thread-5" prio=6 tid=0x03511c00 nid=0x9e4 waiting on condition [0x0399f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at posO2.Threads.ThreadIgor.run(ThreadIgor.java:29)

"Thread-7" prio=6 tid=0x034b9800 nid=0xb40 waiting on condition [0x0394f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at posO2.Threads.ThreadHorloge.run(ThreadHorloge.java:46)
    at java.lang.Thread.run(Unknown Source)

"Thread-4" prio=6 tid=0x0318ec00 nid=0xa08 …
Run Code Online (Sandbox Code Playgroud)

java swing multithreading jstack event-dispatch-thread

4
推荐指数
2
解决办法
1781
查看次数

当tomcat停止响应但对jstack和jmap的访问被拒绝时该怎么办?

有谁知道 tomcat 可能停止响应的任何原因,或者我可以通过什么方式找出发生这种情况的原因?

Tomcat 在摔倒之前似乎运行了好几个星期,但现在已经发生了几次。

我已经看到这个问题tomcat 6 在几个小时后挂起,这似乎与我遇到的问题相同,但我不知道如何运行 jstack。

这是在 windows server 2008 上,tomcat 2.0.28 运行 jdk 6.0.20。Tomcat 作为服务运行,以名为 tomcat_user 的本地用户身份登录。此用户具有作为服务 priv 的登录名,并且不是任何组的成员。我尝试将用户添加到管理员组,但仍然拒绝访问。

从我试过的命令行 runas /user:servername\tomcat_user

然后当我运行时,jps我得到这个输出:

4476 -- 进程信息不可用

1540 日元

双方jstack 4476jmap -histo 4476给出了同样的错误:

4476:访问被拒绝

java tomcat jstack tomcat6

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

在 java 8 上运行 JStack 会停止所有线程吗?

我正在执行 JStack 命令以在特定时间间隔进行线程转储。

我观察到每当 JStack 执行时,目标进程上的所有线程都会停止。在查看我的 log4j 2 日志后,我得出了这个结论,我发现在 JStack 运行期间没有日志记录。

有人能告诉我 JSTack 会挂起/停止目标进程中的所有线程吗?

java jvm jvm-hotspot jstack java-8

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

jstack文件中IN_NATIVE是什么意思?

    Thread 10296: (state = IN_NATIVE)
 - sun.nio.ch.Net.connect0(boolean, java.io.FileDescriptor, java.net.InetAddress, int) @bci=0 (Interpreted frame)
 - sun.nio.ch.Net.connect(java.net.ProtocolFamily, java.io.FileDescriptor, java.net.InetAddress, int) @bci=25, line=465 (Interpreted frame)
 - sun.nio.ch.Net.connect(java.io.FileDescriptor, java.net.InetAddress, int) @bci=6, line=457 (Interpreted frame)
 - sun.nio.ch.SocketChannelImpl.connect(java.net.SocketAddress) @bci=225, line=670 (Interpreted frame)
 - kafka.network.BlockingChannel.connect() @bci=135 (Interpreted frame)
 - kafka.producer.SyncProducer.connect() @bci=21 (Interpreted frame)
 - kafka.producer.SyncProducer.getOrMakeConnection() @bci=11 (Interpreted frame)
 - kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(kafka.api.RequestOrResponse, boolean) @bci=13 (Interpreted frame)
 - kafka.producer.SyncProducer.send(kafka.api.TopicMetadataRequest) @bci=6 (Interpreted frame)
 - kafka.client.ClientUtils$.fetchTopicMetadata(scala.collection.Set, scala.collection.Seq, kafka.producer.ProducerConfig, int, kafka.auth.KafkaUser) @bci=189 (Interpreted frame)
 - kafka.producer.BrokerPartitionInfo.updateInfo(scala.collection.immutable.Set, int) @bci=24 (Interpreted frame)
 - kafka.producer.async.DefaultEventHandler$$anonfun$handle$2.apply$mcV$sp() @bci=54 …
Run Code Online (Sandbox Code Playgroud)

java jstack

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