2015年3月9日

摘要: 1、介绍jstack用于打印出给定的java进程ID或corefile或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack[-l]pid如果java程序崩溃生成core文件,jstack工具可以用... 阅读全文
posted @ 2015-03-09 17:29 帅胡 阅读(403) 评论(0) 推荐(0)
摘要: 1、介绍 用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态,包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集。 使用jps时,如果没有指定hostid,它只会显示本地环境中所有的... 阅读全文
posted @ 2015-03-09 17:27 帅胡 阅读(250) 评论(0) 推荐(0)
摘要: When there is an obstacle, or when a Java based Web application is running much slower than expected,we need to usethread dumps. If thread dumps feel ... 阅读全文
posted @ 2015-03-09 17:21 帅胡 阅读(388) 评论(0) 推荐(0)
摘要: 最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统jstack生成的文件为参照依据。 前段时间因为系统代码问题,造成性能到了天花板,于是就dump了一份stack出来进行分析。 看stack其实也需要一定的经验,毕竟它里面很多线程不可能都是有问题,所以,需要对他们有一定认识。... 阅读全文
posted @ 2015-03-09 17:19 帅胡 阅读(477) 评论(0) 推荐(0)
摘要: Java 的线程线程是指能独立于程序的其它部分运行的执行单元。 JAVA语言能够很好的实现多线程的程序。我们在调试程序,或者在开发后期需要做性能调优的时候,往往也需要了解当前程序正在运行的线程的状态,正在执行的操作,从而分析系统可能存在的问题。在阅读本文之间,应对 Java线程的编程原理,同步机制有... 阅读全文
posted @ 2015-03-09 17:14 帅胡 阅读(663) 评论(0) 推荐(0)
摘要: 前言Java Thread Dump 是一个非常有用的应用诊断工具, 通过thread dump出来的信息, 可以定位到你需要了解的线程, 以及这个线程的调用栈. 如果配合linux的top命令, 可以找到你的系统中的最耗CPU的线程代码段, 这样才能有针对性地进行优化.场景和实践 2.1. 后台... 阅读全文
posted @ 2015-03-09 17:13 帅胡 阅读(1386) 评论(0) 推荐(0)
摘要: Thread Dump and Concurrency LocksThread dumps are very useful for diagnosing synchronization related problems such as deadlocks on object monitors.Ctr... 阅读全文
posted @ 2015-03-09 16:58 帅胡 阅读(413) 评论(0) 推荐(0)
摘要: 通过jps -lv 获取到本地的一个JVM实例进程。再通过jstack pid > thread.txt ,把stack trace输出到thread.txt文件中。2012-08-28 23:16:39Java代码2012-08-2823:16:39FullthreaddumpOpenJDKCli... 阅读全文
posted @ 2015-03-09 16:51 帅胡 阅读(322) 评论(0) 推荐(0)
摘要: jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable 等待资源,Waiting on condition(重点关注)等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspen... 阅读全文
posted @ 2015-03-09 16:24 帅胡 阅读(248) 评论(0) 推荐(0)
摘要: 1. top 命令top命令查看系统的资源状况 load average表示在过去的一段时间内有多少个进程企图独占CPU zombie 进程 :不是异常情况。一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而... 阅读全文
posted @ 2015-03-09 16:11 帅胡 阅读(539) 评论(0) 推荐(0)
摘要: 这两天为了定位JBOSS老是挂死的问题,学习了一下JAVA多线程方面的知识,在此总结一下1、在Java程序中,JVM负责线程的调度。线程调度是指按照特定的机制为多个线程分配CPU的使用权。调度的模式有两种:分时调度和抢占式调度。分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时... 阅读全文
posted @ 2015-03-09 16:03 帅胡 阅读(8364) 评论(0) 推荐(0)
摘要: 使用TDA 工具,看到大量 Java Thread State 的第一反应是:1,线程状态为“waiting for monitor entry”:意味着它在等待进入一个临界区,所以它在”Entry Set“队列中等待。此时线程状态一般都是 Blocked:java.lang.Thread.Stat... 阅读全文
posted @ 2015-03-09 16:00 帅胡 阅读(357) 评论(0) 推荐(0)
摘要: 我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙:1.top查找出哪个进程消耗的cpu高21125 co_ad2 18 0 1817m 776m 9712 S 3.3 4.9 12:03.24 java5284 co_ad 21 0... 阅读全文
posted @ 2015-03-09 15:53 帅胡 阅读(225) 评论(0) 推荐(0)
摘要: 1、cat /proc/${pid}/status2、pstree -p ${pid}3、top -p ${pid} 再按H 或者直接输入 top -bH -d 3 -p ${pid}top -H手册中说:-H : Threads toggle加上这个选项启动top,top一行显示一个线程。否则,... 阅读全文
posted @ 2015-03-09 15:15 帅胡 阅读(2043) 评论(0) 推荐(0)
摘要: public static enum Thread.Stateextends Enum线程状态。线程可以处于下列状态之一:1.NEW至今尚未启动的线程的状态。2.RUNNABLE可运行线程的线程状态。处于可运行状态的某一线程正在 Java 虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理... 阅读全文
posted @ 2015-03-09 14:24 帅胡 阅读(8108) 评论(0) 推荐(0)

导航