java性能优化 –gc日志收集与分析
来源:互联网 发布:淘宝怎么退货退款 编辑:程序博客网 时间:2024/06/06 01:15
使用jvisualvm与jconsole能够实时监控java程序的运行状态。
但是我们并不会一直盯着输入屏幕,或者说开着一个客户端一直抓取服务器的运行信息。相对来说,能够让java程序在运行的时候自动生成日志,然后我们再对生成的数据进行分析是比较不错的选择。
收集日志
打印Gc日志的参数
打印gc详细信息
-XX:+PringGCDetails
带有距离JVM开始运行的时间戳
-XX:+PrintGCTimeStamps
带有日历时间戳
--XX:+PringGCDateStamps
指定gc日志存放文件(不指定则控制台打印)
-Xloggc:
针对高延迟问题调优HotSpot VM时,下面两个命令行选项特别有用,通过它们可以获得应用程序由于执行VM安全操作而阻塞的时间以及两个安全点操作之间应用程序运行的时间。
-XX:+PrintGCApplicationStoppedTime-XX:+PrintGCApplicationConcurrentTime
何谓安全操作:安全操作使JVM进入到一种状态:所有的java应用线程都被阻塞、执行本地代码的线程都被禁止返回VM执行Java代码。安全操作常用于虚拟机需要进行内部操作时,此时所有的Java线程都被显式地置于阻塞状态且不能修改Java堆的情况。
设置参数
Tomcat
$CATALINA_HOME/bin/setenv.sh文件
加入:
#opts for gc logexport CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCDetails"export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCTimeStamps"export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCDateStamps"export CATALINA_OPTS="$CATALINA_OPTS -Xloggc:/gc_logs/tomcat.gc.log"
当然,loggc的文件能够自给创建,目录得先创建好。
分析日志
拿到了日志,拿眼睛看也是怪累的,而且不拿本教程对着看各个参数时什么意思还真不怎么看得懂。过段时间又忘了什么意思。。。
关键时“海量”的数据,眼睛哪看的过来,还需需要将日志转化成像jconsole、jvisualvm一样的图形化看着才方便。
gchistro0
这个工具好像听说比较强大,所以我也写上。
工程的地址在:https://java.net/projects/gchisto
svn源码放在:https://svn.java.net/svn/gchisto~svn
然而,虽然它强大,但是我用它分析日志的时候并没有识别出来。
我现在也没搞清楚是哪里出了问题.如果有会用的前辈还请指导指导.
gceasy
推荐一个分析gc日志的网址:http://gceasy.io/
只要上传日志文件就能够给出好多有用的分析数据出来。感觉还是很好用的。
后面还会根据这个网站的日志分析做出性能调优。
- java性能优化 –gc日志收集与分析
- java性能优化 –gc日志收集与分析
- Java 性能优化 - Websphere GC日志分析
- 读书笔记——《深入理解Java虚拟机》系列之垃圾收集器与GC日志分析
- Java性能优化指南(四):GC收集器导论
- java GC性能优化
- Java GC 日志分析
- Java GC 日志分析
- Java GC日志分析
- 通过GC日志分析程序性能与内存泄漏
- Java GC CMS 日志分析
- java的gc日志分析
- java堆内存泄露分析与GC日志详解
- JAVA GC垃圾收集器的分析
- JAVA GC垃圾收集器的分析
- JAVA GC垃圾收集器的分析
- GC的分析与常用GC收集器
- GC之详解CMS收集过程和日志分析
- 自定义View(二)
- 中间件软件技术规格要求
- jquery 对象级插件写法
- 整理的对象的分类
- 设计模式中的构建者Builder模式&c++
- java性能优化 –gc日志收集与分析
- OpenGL ES入门详解
- 并查集详解 (转)
- 浮动问题:如何相对某个div进行绝对定位.
- 在WPF中使用WindowProc处理消息
- checkbox如何与说明文字无法对齐
- Navicat for MySQL使用手记
- Hadoop集群搭建,初探
- bzoj 4111: [Wf2015]Keyboarding