java性能问题的定位常用方法
来源:互联网 发布:绣花制版软件 编辑:程序博客网 时间:2024/06/05 01:52
今天安装系统版本,经常总是出现了监控到系统内存不足,进程退出,导致服务起不来的问题。本来想修改一下jvm参数,一般都是找到shell脚本,修改xmx值变成原来的一倍。简单处理。后来觉得出现这种内存不足,内存泄漏或者OOM问题的机会本来不多,学会优化和定位性能问题是程序员进阶的必经之路,所以还是找出一些常用的工具,对此问题定位了一番,虽然最后还是通过调大JVM参数搞定的。
常见的性能问题:
内存溢出 OOM (Heap OutOfMemoryError)
内存泄漏
线程死锁
CPU冲高
锁竞争
。。。
在jdk的bin文件中提供了很多性能定位的工具。这里介绍几种常用的工具和命令:
常用的工具
可视化工具
jconsole
主要用来监控系统的一些性能数据,如CPU、内存以及线程的使用情况。jvisualvm
主要用来获取线程dump,或者堆dump的。通过线程pid。
常用命令
1、jps + jstack
jps :
作用:主要是获取当前系统中主要的线程pid
语法: jps
jstack :
作用: 获取指定线程的dump
语法: jstack pid
主要场景: 出现线程死锁问题。通过线程dump可以知道哪几个线程之间存在死锁现象。
2、
jmap + MAT(Memory analyse tool内存分析工具)
作用:获取指定线程的内存dump,可以知道此线程中一些对象或者变量之间的内存使用情况。
命令: jmap -heap pid
也可以直接把内存情况dump到文件中。
dump到文件后,直接放入到MAT工具中进行分析。可以知道哪些对象占据内存过多,然后根据此情况,找到相关的代码进行分析,最后优化代码解决问题。
3、jstat
未完待续。。。
详情请参考:
https://my.oschina.net/feichexia/blog/196575
阅读全文
0 0
- java性能问题的定位常用方法
- Java的WEB应用性能问题定位方法总结
- Java的WEB应用性能问题定位方法总结(二):常见性能问题处理工具
- linux中常用的定位性能问题的命令…
- Java的WEB应用性能问题定位方法总结(一):常见的性能指标分析
- Java的WEB应用性能问题定位方法总结:常见的性能指标分析 .
- WEB系统性能问题的分析定位方法
- JAVA异常的定位问题方法
- 定位问题的方法
- oracle数据库性能问题定位方法
- Xpath定位的常用方法
- java 线上问题定位与性能测试
- java.lang.OutOfMemoryError: PermGen space 问题定位的方法
- 性能监控与性能问题定位之:Java篇
- 性能监控与性能问题定位之:Java篇
- 记录最近定位的性能问题
- Java中的常用的代码调试的方法(错误代码定位的方法)
- mysql性能定位问题
- HDU-6039 Gear Up(线段树+DFS序)
- HDU6053-TrickGCD 容斥原理+莫比乌斯反演
- 《大话数据结构》第三章 线性表
- git 操作
- openattic简介及在Ceph集群中部署
- java性能问题的定位常用方法
- 练习(二)
- 数据结构-线性链表
- ACL 权限控制
- Subsequence 尺取法
- 【ulua入门】log(打印)lua中的table数据
- Unity优化之遮挡剔除Occlusion Culling
- OpenGL 显示列表
- Android 驱动程序Demo及流程