- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
本文由简悦SimpRead转码,原文地址
本我们主要从一个实战案例入手分析面对突如其来的GC问题该如何下手解决。
想要下手解决GC问题,我们首先需要掌握下面这三种问题。
如何使用jstat命令查看JVM的GC情况?
面对海量GC日志参数,如何快速抓住问题根源?
你不得不掌握的日志分析工具。
工欲善其事,必先利其器。我们前面讲到的优化,包括代码优化、扩容、参数优化,甚至我们
的估算,都需要一些支撑信息加以判断。
对于JVM来说,一种情况是GC时间过长,会影响用户的体验,这个时候就需要调整某些JVM参数、
观察日志。
另外一种情况就比较严重了,发生了OOM,或者操作系统的内存溢出。服务直接宕机,我们要寻找背
后的。
这时,GC日志能够帮我们找到问题的根源。本,我们就简要介绍一下如何输出这些日志,以及如
何使用这些日志的支撑工具解决问题。
GC日志输出
你可能感受到,最近几年Java的版本更新速度是很快的,JVM的参数配置其实变化也很大。就拿GC日
志这一块来说,Java9几乎是重来。网络上的一些文章,把这些参数写的七八糟,根本不能投入
生产。如果你碰到不能被识别的参数,先确认一下自己的Java版本。
在事故出现的时候,通常并不是那么温柔。你可能在半夜里就能接到,这是因为很多定时任务
都设定在夜深人静的时候执行。
这个时候,再去看jstat已经来不及了,我们需要保留现场。这个便是看门狗的工作,看门狗可以通过
设置一些JVM参数进行配置。
那在实践中,要怎么用呢?请看下面命令行。
###
Java8
我们先看一下JDK8中的使用。
#!/bin/sh
LOG_DIR=/tmp/logs
JAVA_OPT_LOG=-verbose:gc
JAVA_OPT_LOG=${JAVA_OPT_LOG}-XX:+Printetails
JAVA_OPT_LOG=${JAVA_OPT_LOG}-XX:+PrintateStamps
JAVA_OPT_LOG=${JAVA_OPT_LOG}-XX:+PrintGCApplicationStoppedTime
JAVA_OPT_LOG=${JAVA_OPT_LOG}-XX:+PrintTenuringDistribution
JAVA_OPT_LOG=${JAVA_OPT_LOG}-Xloggc:${LOG_DIR}/gc_%p.log
JAVA_OPT_OOM=-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=${LOG_DIR}-
XX:ErrorFile=${LOG_DIR}/hs_error_pid%p.log
JAVA_OPT=${JAVA_OPT_LOG}${JAVA_OPT_OOM}
JAVA_OPT=${JAVA_OPT}-XX:-OmitStackTraceInFastThrow
合成一行。
-verbose:gc-XX:+Printetails-XX:+PrintateStamps
-XX:+PrintGCApplicationStoppedTime-XX:+PrintTenuringDistribution
-Xloggc:/tmp/logs/gc_%p.log-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/logs-XX:ErrorFile=/tmp/logs/hs_error_pid%p.log
-XX:-OmitStackTraceInFastThrow
然后我们来解释一下这些参数:
|
参数
|
意义
|
|
-verbose:gc
|
打印GC日志
|
|
Printetails
|
打印详细GC日志
|
|
PrintateStamps
|
系统时间,更加可读,PrintGCTimeStamps是JVM启动时间
|
|
PrintGCApplicationStoppedTime
|
打印STW时间
|
|
PrintTenuringDistribution
您可能关注的文档
最近下载
- 传承与创新——中国近现代美术 课件-2024-2025学年高中美术人教版 (2019) 必修美术鉴赏.pptx VIP
- 【国联证券-2024研报】固态电池系列报告一:硫化物固态电池产业化提速.pdf VIP
- 医学知识一内分泌总论第八版.pptx
- WebOP Designer 程序下载方式.pptx
- 统编版高中语文选择性必修教材单元研习任务研究.pdf
- 内科学泌尿系统肾小球疾病概述课件.pptx VIP
- 守住光明照亮未来(预防近视主题班会)课件.pptx VIP
- 湘教版八年级地理上册练习题(全册,含答案).pdf VIP
- 辽宁机电职业技术学院职测考试题库(考前急训).docx
- 医院内科肾内科医生面试题及参考答案结构化面试题.docx VIP
文档评论(0)