java性能优化 –gc日志收集与分析
2017-07-04 16:44
429 查看
使用jvisualvm与jconsole能够实时监控java程序的运行状态。
但是我们并不会一直盯着输入屏幕,或者说开着一个客户端一直抓取服务器的运行信息。相对来说,能够让java程序在运行的时候自动生成日志,然后我们再对生成的数据进行分析是比较不错的选择。
带有距离JVM开始运行的时间戳
带有日历时间戳
指定gc日志存放文件(不指定则控制台打印)
针对高延迟问题调优HotSpot VM时,下面两个命令行选项特别有用,通过它们可以获得应用程序由于执行VM安全操作而阻塞的时间以及两个安全点操作之间应用程序运行的时间。
何谓安全操作:安全操作使JVM进入到一种状态:所有的java应用线程都被阻塞、执行本地代码的线程都被禁止返回VM执行Java代码。安全操作常用于虚拟机需要进行内部操作时,此时所有的Java线程都被显式地置于阻塞状态且不能修改Java堆的情况。
$CATALINA_HOME/bin/setenv.sh文件
加入:
当然,loggc的文件能够自给创建,目录得先创建好。
关键时“海量”的数据,眼睛哪看的过来,还需需要将日志转化成像jconsole、jvisualvm一样的图形化看着才方便。
工程的地址在:https://java.net/projects/gchisto
svn源码放在:https://svn.java.net/svn/gchisto~svn
然而,虽然它强大,但是我用它分析日志的时候并没有识别出来。
我现在也没搞清楚是哪里出了问题.如果有会用的前辈还请指导指导.
只要上传日志文件就能够给出好多有用的分析数据出来。感觉还是很好用的。
后面还会根据这个网站的日志分析做出性能调优。
转载于:https://my.oschina.net/jeeker/blog/661639
但是我们并不会一直盯着输入屏幕,或者说开着一个客户端一直抓取服务器的运行信息。相对来说,能够让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/只要上传日志文件就能够给出好多有用的分析数据出来。感觉还是很好用的。
后面还会根据这个网站的日志分析做出性能调优。
转载于:https://my.oschina.net/jeeker/blog/661639
相关文章推荐
- java性能优化 –gc日志收集与分析
- java性能优化 –gc日志收集与分析
- Java 性能优化 - Websphere GC日志分析
- Java性能优化指南(四):GC收集器导论
- 优化 Java 垃圾收集器改进系统性能
- JProbe-Java内存分析、Java性能分析、Java覆盖分析、Java诊断优化
- java深入分析I/O流工作机制05-I/O性能优化
- Java GC CMS 日志分析
- Java性能优化:垃圾回收(GC) (转文)
- Java性能优化:垃圾回收(GC)
- Java 性能优化实战记录(3)--JVM OOM的分析和原因追查
- mysql性能优化之慢查询日志分析
- Java 性能优化实战记录(1)---定位并分析耗cpu最多的线程
- 使用GC Portal 来分析和优化垃圾回收的性能
- Log4j优化(一)扩展Log4j来实现性能优化的异步日志收集器
- 通过日志监控并收集 Java 应用程序性能数据
- 笔记:Java 性能优化权威指南 第6章 Java 应用性能分析技巧
- 优化 Java 垃圾收集器改进系统性能
- 通过日志监控并收集 Java 应用程序性能数据
- Java 性能优化实战记录(3)--JVM OOM的分析和原因追查