zoukankan      html  css  js  c++  java
  • jstack 用于查看某个API响应慢

    jstack

    jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。

    线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。

    另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

    语法 

    jstack [ options ] pid

    jstack [ options ] executable core

    jstack [ options ] [ server-id@ ] remote-hostname-or-IP

    选项

    • -F : 当正常输出请求不被响应时,强制输出线程堆栈
    • -l : 除堆栈外,显示关于锁的附加信息
    • -m : 如果调用到本地方法的话,可以显示C/C++的堆栈
    [root@node1 ~]# jstack -F -l 2656
    Attaching to process ID 2656, please wait...
    Debugger attached successfully.
    Server compiler detected.
    JVM version is 25.201-b09
    Deadlock Detection:
    
    No deadlocks found.
    
    Thread 6760: (state = BLOCKED)
    - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
    - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20, line=215 (Compiled frame)
    - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) @bci=78, line=2078 (Compiled frame)
    - org.eclipse.jetty.util.BlockingArrayQueue.poll(long, java.util.concurrent.TimeUnit) @bci=53, line=337 (Compiled frame)
    - org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll() @bci=12, line=517 (Compiled frame)
    - org.eclipse.jetty.util.thread.QueuedThreadPool.access$600(org.eclipse.jetty.util.thread.QueuedThreadPool) @bci=1, line=39 (Compiled frame)
    - org.eclipse.jetty.util.thread.QueuedThreadPool$3.run() @bci=275, line=563 (Compiled frame)
    - java.lang.Thread.run() @bci=11, line=748 (Interpreted frame)
    
    Locked ownable synchronizers:
  • 相关阅读:
    Mac 下的 Homebrew 简介及安装
    配置Mac打开ntfs的外设磁盘硬盘的原生读写/Mac OS上使用不同格式的磁盘
    ztree使用 (一) 递归后台的数据
    springboot整合redis 配置文件及配置类(二)
    springboot整合redis 配置文件及配置类(一)
    java登录拦截器
    获取小程序二维码
    java合成图片
    微信 获取手机号
    js+html5点击赋值到剪贴板
  • 原文地址:https://www.cnblogs.com/zh-dream/p/13603616.html
Copyright © 2011-2022 走看看