java系统性能分析

netstat -ano | findstr 31900

注意最后是pid

堆栈的作用:

 线程死锁分析
 辅助CPU过高分析
 线程资源不足分析
 性能瓶颈分析
 关键线程异常退出

Windows:在运行java的控制台上按ctrl+break组合键 _ usefull?

wait() —— 会释放监视锁
sleep() —— 与锁操作无关,继续保持监视锁

Found one Java-level deadlock:

第三步:预处理前两个获取的堆栈信息,去掉处于sleeping或waiting的状态的线程。
例如如下线程处于wait或者sleep状态,
这种线程是不消耗CPU的,因此这些线程可以直接忽略掉,重点关注其它线程:

第五步:对比预处理后的1,2堆栈信息,找出处于busy状态的线程,该类线程可能是导致cpu高占用率的可疑线程。
例如

同一个线程在第二个堆栈信息中仍处于活跃状态

两次打印堆栈该线程一直在运行,说明该线程已运行了5分钟,请在代码中检查该线程是否属于长时间运行线程?如果属于暂态线程,如此长时间运行说明可能有死循环等导致的CPU过高

常见架构和设计问题:
不恰当的线程同步
不良的架构(同步/异步使用不当)
并发设计不当-资源抢占导致的资源竞争, 连接池和线程池等应用不当等
效率低下的通信方式
数据库连接等竞争资源参数设置不当
内存泄漏/不恰当的虚拟机运行参数
缓慢的磁盘/网络 IO

… …
常见编码问题
String +,getByte()的不恰当使用:很多时侯可以使用StringBuf
过大的同步范围
SQL语句设计不当

能够发现的性能问题:
(1) 资源争用
(2) 锁的粒度过大
(3) sleep的滥用

适用场合:
识别只有在高负载的时候才出现的性能瓶颈。
多线程场合

不适用的场合:
单操作单线程下的代码段耗时分析,如一次界面点击,感觉迟缓。

方法: Java 命令行中增加 –verbose:gc 运行参数

可以调节的JVM 垃圾回收参数
IBM JDK:主要参数: -Xconcurrentbackground –Xconcurrentlevel, 以及堆大小。
SUN,HP JDK 主要是 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction

.
常见的内存泄露
(1) 全局HashMap等容器,在对象不需要后没有及时从容器中remove掉
特别是在抛出异常的时候,一定要确保remove方法执行到。

(2) Runnable对象new了就必须使用线程来Run等

?? 可以按照如下思路分析GC输出,能够初步比较准确地判断系统是否存在内存泄漏:
?? (1) 首先要确保系统已经稳定运行(如初使化等已经完成等) (这个条件很重要)
?? (2) 然后取一个时间段的GC 输出作为分析数据,只分析FULL GC的行,以垃圾回收后的值为分析对象
?? (3) 然后根据GC分析内存的使用情况:
?????? A. 如果当前使用内存持续增长, 而垃圾回收后内存也持续增长, 有一直增长到Xmx设置的内存的趋势,
那么这个时侯基本上就可以断定有内存泄漏问题了.
?????? B. 如果当前使用内存增长到一个值之后,又能回落, 达到一个动态平衡, 那么就没有内存泄漏的情况.

(1) 只有FULL GC的行才有分析价值
(2) 只需要检查完全垃圾后剩余的内存值是否一直再增大。

OptimizeIt
snoop抓包工具/ethereal

阿萨德发是否

java系统性能分析

时间: 2024-08-04 22:55:35

java系统性能分析的相关文章

linux 系统性能分析(top命令)及更准确解读内存的占用率(free -m 命令)

一.系统性能分析(top命令) top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,默认5秒刷新一下进程列表,所以类似于 Windows 的任务管理器. 系统整体当下的统计信息 top命令显示的前五行是系统整体的统计信息. 第一行是任务队列信息,同uptime命令的执行结果.eg. top  -  15:09:51  up  17  days  ,  3:38  ,  4  users  ,  load  average  :  1.09  ,  3.39

Linux 系统性能分析工具sar一

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及IPC有关的活动等.本文主要以CentOS 6.3 x64系统为例,介绍sar命令. sar命令常用格式 sar [options] [-A] [-o file] t [n] 其中: t为采样间隔,n为采样次数,默认值是1: -o file表示将命

通信原理实践(四)——模拟通信系统性能分析

一.模拟通信系统性能分析 1.系统框图 2.信噪比定义 (1)输入信噪比: (2)输出信噪比: (3)调制制度增益: 3.模拟通信系统分析等价模型 即自己产生一个高斯白噪声,加入到调制信号,然后在送入解调器. 4.通信系统新能分析 (1) AM 解调器      AM 信号可用相干解调或者包络检波两种方法解调.对于100% 调制,且调制信号m(t) 是正弦波情况下,相干解调的调制制度增益为GAM = 2/3.对于包络检波来说,在大信噪比情况下它的性能与相干解调器的性能几乎一样.小信噪比的情况下,

SAP 系统性能分析 Tcode

原文转载 http://blog.chinaunix.net/uid-20607558-id-1916144.html  感谢原作者的总结及归纳. /nSMLTlanguage managementoverview sap support language ==for manage databasehttp://help.sap.com/saphelp_47x200/helpdata/en/d0/1057cd20d96a43bde5d59291e8290f/frameset.htm /nST04

Linux系统性能分析

前言 性能调优的主要目的是使系统能够有效地利用各种资源,最大可能地发挥应用程序和系统之间的性能融合,使应用高效.稳定的运行.但是,衡量系统资源利用率的好坏的标准没有一个严格的定义,针对不同的系统和应用也没有一个统一的说法. 系统性能我们比较关注:内存,磁盘,CPU,系统load 一.系统负载load: 1.查看系统负载的方法: top.uptime 2.系统负载分析 top - 06:43:59 up 180 days,  6:41,  2 users,  load average: 0.65,

常用系统性能分析工具

Linux sar命令: sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及IPC有关的活动等. [root ~]$ sar --help 用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ] Options are: [ -A ] [ -b ] [ -B ] [ -

nmon与nmonanalyser系统性能分析

nmon与nmonanalyser系统性能分析(图表) - [系统架构] 2011-05-15 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/addcn-logs/134036299.html 2011-04-25 12:55:46 下载相应 CPU 类型的版本: wget http://sourceforge.net/projects/nmon/files/download/nmon_x86_12a.zip/download un

JMeter—系统性能分析思路(十三)

参考<全栈性能测试修炼宝典JMeter实战>第九章 性能监控诊断 第二节 系统性能分析思路和第三节 定位分析 系统在工作负载中的性能受到许多因素影响,处理器速度.内存容量.网络或磁盘I/O控制器的数量以及磁盘的容量和速度是所以工作负荷的重要性能特征组件.还有其他应用程序自身的性能特征.工作负荷的特性.应用程序间的通信行为.磁盘或网络上的数据访问模式,还有终端用户对应用程序的使用模型.对特定工作负荷调优时,常常首先要假定许多物理环境特征,例如处理器数量.处理器类型.磁盘数量等保持不变.性能分析的

Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器

VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收器.执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作. 在内存分析上,Java VisualVM的最大好处是可通过安装Visual GC插件来分析GC(Gabage Collection)趋势.内存消耗详细状况. 一  Visual GC(监控垃圾回收器) Java Visu