- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
今天我发现我的应用程序无法访问。然后我登录我的服务器。我发现应用程序的线程正常,但是CPU负载太高。
然后,我想使用jstack
命令,但它指出需要-F选项
。现在我发现GC日志停留在[GC (Allocation Failure) 2015-10-10T10:18:10.564+0800: 71147.518: [ParNew:
,并且没有其他日志。
然后,我使用了jstack -F
命令,奇怪的事情发生了。CPU正常了,我的服务器也正常了,GC日志也正常了,第一行是[GC (Allocation Failure) 2015-10-10T10:17:50.757+0800: 53501.137: [ParNew: 210022K->245K(2 35968K), 369.6907808 秒] 400188K->1
。并且jstack的结果可运行线程都是GC线程,如
90410K(1022400K), 369.6909604 secs] [Times: user=3475.15 sys=11.69, real=369.63 secs]“Gang worker#4(并行GC线程)” os_prio=0 tid= 0x00007f5f10021800 nid=0x6477 可运行
这是我的 JAVA_OPTIONS
-server -Dfile.encoding=UTF-8 \ -Xms2g -Xmx2g -Xmn512m \ -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 \ -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 \ -XX:+PrintGCDateStamps -verbose:gc -XX:+PrintGCDetails -Xloggc:/data/logs/gc-skynetlog_web.log \ -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M \ -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs/dump_skynetlog_web.hprof
最佳答案
有一个影响 Linux 内核 3.14 - 3.18 的新错误
症状,线程在同步原语上阻塞时消耗 100%。发送信号(就像 jstack -F 所做的那样)正在解决这种情况。对于 JVM,如果 GC 线程受此影响,应用程序将永远处于 STW 暂停状态。
您可以在 this post by Gil Tene 中找到更多详细信息
关于java - java应用程序假死。 Jstack可以使应用程序恢复吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33080291/
如果程序挂死,有时使用jstack查看进程中线程信息时,需要添加上-F参数,此时如果有死锁信息,则可能不会打印出死锁堆栈信息,使用jdb则可以查看当前死锁线程的运行堆栈。 如下模拟一个简单的死锁程
我们一直使用 jstack 从 JVM 输出线程转储,多年来我们一直使用 IBM Thread Analyzer分析线程和监视器。下面是分析器解析的 jstack (jstack -l PID > j
我正在尝试调试 Hadoop 中的性能问题,作为其中的一部分,我在不同的 hadoop 版本中多次捕获了 jstack,并在不同的 Java 版本上运行。当我的性能问题出现时,我得到一个可运行线程的
当我使用 jstack 询问核心转储文件时,出现此异常。我尝试过使用 sudo 但还是一样。 感谢您的帮助。 Attaching to remote server core.2941, please
是否有 jstack 的 python 等价物?我有一个挂起的进程,我真的很想看看它在做什么,因为我还没有重现开发中的缺陷。 最佳答案 Python GDB 关于Python 等同于 Jstack?,
我们在服务器上使用 jstack 来检测 Java 应用程序是否出现死锁。它不适用于我们的 Linux 服务器之一。我认为 O/S 版本是: $cat /etc/issue.net Red Hat E
我正在尝试在我的 java 应用程序上运行 jstack 命令。应用程序比较大,运行在 jboss AS 内,占用大约 4gb 的内存。操作系统为 Windows Server 2003 标准版。每次
我正在使用 32 位 Oracle Java 1.6.0 在 x86_64 CentOS 5.7 上运行 tomcat 5.5。 tomcat使用的JVM进程有6421 pid。 Tomcat 工作正
我正在运行 Ubuntu 服务器版,我想获取 Tomcat 的线程转储。 所以,我首先尝试找出tomcat使用的是哪个PID: $ jps -l 5809 sun.tools.jps.Jps 但它不存
一、概述 jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&q
我使用过 Samurai,我可以看到没有死锁并且有几个线程在等待,但我似乎无法确切地弄清楚哪个锁正在拖延进程。谁能帮我吗? 我不是在寻找人们猜测我的问题是什么,更多关于如何更改代码以使其更容易跟踪问题
这是运行中的 JVM 的 jstack 输出 "FooThread" prio=10 tid=0x00007f159c2ca000 nid=0x6e21 waiting on condition ..
我想生成自动线程转储。这是我正在使用的脚本: THREADDUMP_LOG_FILE="/tmp/tmpLog_`date +"%Y%m%d%H%M%S"`" pid=`ps axww
我有一个通过 Java Webstart 部署的桌面 Java/Swing 应用程序(客户端在 XP 上使用 Java 6u20)。我收到了来自应用程序挂起用户的断断续续的报告。我设法在挂起期间登录到
使用 jstack 我得到了一个正在运行的线程树。 以下 Thread.State 的含义是什么: 等待 TIMED_WAITING 可运行 tid 和 nid 是什么意思? 一个Thread的标题是
我有一个名为 my-app 的 Java 应用程序,它从特定用户 my-app-user 运行,我想每小时进行一次线程转储。我发现 jstack 与 JDK 捆绑在一起,我想用 -l 标志执行它。但是
我有一个 java 进程使用 BatchInserter 将大量数据从一堆 .csv 文件加载到 Neo4j 数据库中。我正在使用: OpenJDK 7 Ubuntu 12.04 Neo4j 2.0
jps/jstat/jstat 无法找到或附加到 java pid(由 Cassandra 用户拥有)。我尝试了软链接(soft link) sudo ln -s/tmp/hsperfdata_cas
我有一个关于 JVM 和 Jstack 之间使用的问题 如果 jvm 堆利用率很高,假设超过 90% 与 jstack 响应 jvm 之间有任何相关性 它会影响 Jstack 吗 最佳答案 总的来说,
Thread 10296: (state = IN_NATIVE) - sun.nio.ch.Net.connect0(boolean, java.io.FileDescriptor, java.n
我是一名优秀的程序员,十分优秀!