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系统性能分析的更多相关文章
- Linux系统性能分析
http://c.biancheng.net/cpp/html/2782.htmlLinux系统性能分析 这篇教程的目的是向大家介绍一些免费的系统性能分析工具(命令),使用这些工具可以监控系统资源使用 ...
- 通信原理实践(四)——模拟通信系统性能分析
一.模拟通信系统性能分析 1.系统框图 2.信噪比定义 (1)输入信噪比: (2)输出信噪比: (3)调制制度增益: 3.模拟通信系统分析等价模型 即自己产生一个高斯白噪声,加入到调制信号,然后在送入 ...
- 操作系统性能分析与优化V1.0
操作系统性能分析与优化V1.0 : http://www.docin.com/p-759561760.html
- Linux 系统性能分析工具 sar
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以 从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用 ...
- JMeter—系统性能分析思路(十三)
参考<全栈性能测试修炼宝典JMeter实战>第九章 性能监控诊断 第二节 系统性能分析思路和第三节 定位分析 系统在工作负载中的性能受到许多因素影响,处理器速度.内存容量.网络或磁盘I/O ...
- nmon与nmonanalyser系统性能分析
nmon与nmonanalyser系统性能分析(图表) - [系统架构] 2011-05-15 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.c ...
- 八、jdk工具之JvisualVM、JvisualVM之二--Java程序性能分析工具Java VisualVM
目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...
- (转)Linux 系统性能分析工具图解读(一、二)
Linux 系统性能分析工具图解读(一.二) 原文:http://oilbeater.com/linux/2014/09/08/linux-performance-tools.html 最近看了 Br ...
- sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用
12. sar 找出系统瓶颈的利器 sar是System Activity Reporter(系统活动情况报告)的缩写.sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行 ...
随机推荐
- GridView基础知识
首先,gridview是封装好的,直接在设计界面使用,基本不需要写代码: 1.绑定数据源 GridView最好与LinQDatasourse配合使用,相匹配绑定数据: 2.外观控制 整体控制 自动选择 ...
- angular之自定义过滤器的使用
自定义过滤器需要使用filter函数,格式如下: filter("filterName',function(){ return function(target,args){ .... } } ...
- 16.iOS APP图标和启动画面尺寸
1. 桌面图标 (app icon) for iPhone6 plus(@3x) : 180 x 180 for iPhone 6/5s/5/4s/4(@2x) : 120 x 120 2. 系统搜索 ...
- 使用Wireshark 查看查找未被过滤端口
打开Wireshark ,过滤输入“ip.src == [IP] && ip.ttl < 255”,因为防火墙伪造的数据包的TTL都是255,真实的数据包应该是56,所以这句话直 ...
- IIS 部署 node.js ---- 基础安装部署
一些可能有用的相关文章: https://blogs.msdn.microsoft.com/scott_hanselman/2011/11/28/window-iisnode-js/ http://b ...
- Android最大可运行内存
int maxMemory = (int) Runtime.getRuntime().maxMemory();
- premierepro破解
1.安装硬解 360云盘 破解教程:mac sky/破解安装说明.rtf 破解软件:mac sky/Smart Adobe CS6 Blocker v1.1.app 安装文件:mac sky/Prem ...
- [Xpand] Error 1 Invalid option '6' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default
原因是用的vs2015 默认用了c#6 ,但是在没安装.net 4.6 环境下编译失败. 解决办法很简单,修改 6 为 5 做降级就可以了. 1.nuget install DotNetCompile ...
- java基础2_算术运算
一 算术运算符,包括+,-,*,/,%, 1. 如果在一个算术运算中有int,double,float那么最终运算的结果是double,那么也就是说参与运算的类型和得到的结果:结果一定是参与运算的精度 ...
- JS——树形导航菜单(html的ul嵌套,jQuery的css(),show(),hide(),index()等方法)
必备工具:jquery库文件.我这里用的是1.4版本的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...