YGC问题排查】的更多相关文章

在高并发下, Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大. 不管是 「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题. 内容分成以下2个部分: 从一次YGC耗时过长的案例说起 YGC的相关知识点总结 01 从一次YGC耗时过长的案例说起 今年4月份,我们的广告服务在新版本上线后,收到了大量的服务超时告警,通过下面的监控图可以看到:超时量突然大面积增加,1分钟内甚至达到了上千次接口超时.下面…
问题发现场景 某天突然收到线上应用的gc时间过长的告警,刚开始只有一台机器偶尔报一下,后续其他机器也纷纷告警,具体告警的阈值是应用10分钟内ygc的总时长达到了6.6s. 初步排除过程 按照gc问题常规排查流程,还是先保留现场,jmap -dump:format=b,file=temp.dump pid. 查看下gc日志,发现出问题的时候的单次ygc耗时几乎有200ms以上了.正常来说单次ygc在100ms以下,基本可以认为应用是比较健康的.所以这时候已经可以确定告警的原因就是ygc比较慢. j…
前些天发现:http://hellojava.info/这个站点,关于java问题排查分析总结线上故障总结其实是最有价值的,好的总结就是一个系统演进历史,是团队难得的积累沉淀. 花了不少时间看了下,顺手整理了笔记: 1. Hashmap 并发情况下未加锁导致OOM 嗯,死循环很常见,OOM也会有,序列化时 HashMap.writeObject 一直执行生成巨大的数组. 2. Direct Bytebuffer     大小有限制,默认配置大小为:-Xmx,必要通过-XX:MaxDirectMe…
一.概述: 在实际使用hadoop的过程中,由于涉及到多台服务器.每台机器上可能还有多个服务等.所以当集群环境出现问题时,快速定位到错误出现的地方尤为重要. 在排查错误的过程中,基本上就是通过既有的工具来检测集群的运行时环境.集群日志等来分析导致错误的原因. 二.Java heap: hadoop需要运行在Java运行时环境之上.因此jvm中的内存分配是否处于合理的状态,就是需要检测的一个因素.Java虚拟机中分为多个区域,最值得关注的区域是heap区.heap区的大体划分如下: 创建对象时,会…
# 前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的.各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题.楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢? 首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防止下次再次出现. 今天的文章,就如我们的题目一样,讲的是基本操作,也就是一些排查线上问题的基本方法.为什么这么说呢?因为线上问题千奇百怪,就算是身经百战的专家也会遇到棘手的问题,因此不可能在一篇文章…
前言 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警. 本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路. 对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jstack和内存信息,然后重启系统,尽快保证系统的可用性.这种情况可能的原因主要有两种: 代码中某个位置读取数据量较…
作者:莫那鲁道 原文:http://thinkinjava.cn/#blog 某天晚上,某环境 ES 出现阻塞, 运行缓慢.于是开始排查问题的过程. 开始 思路:现象是阻塞,通常是 CPU 彪高,导致业务线程分配不到 CPU 时间片,或者内存吃紧,频繁 GC 导致的 STW.登录到目标服务器,由于 ES 的用户不是 LZ,因此找运维要了 root 权限,登录到服务器.sudo -i 切到 root,使用 ps -ef | grep Elasticsearch 找到该用户,然后 su - es 切…
本文将介绍JDK自带的JVM排查工具.其提供的排查工具有: (1)jps:JVM Process Status Tool,显示系统内所有的JVM进程: (2)jstat:JVM Statistics Monitoring Tool,可以收集JVM相关的运行数据: (3)jinfo:Configuration Info for Java,显示JVM配置信息: (4)jmap:Memory Map for Java,用于生成JVM的内存快照: (5)jhat:JVM Heap Dump Browse…
https://www.cnblogs.com/keanuyaoo/p/3253663.html 常用命令目录: jps命令(Java Virtual Machine Process Status Tool) jstat命令(Java Virtual Machine Statistics Monitoring Tool) jinfo命令(Java Configuration Info) jstack命令(Java Stack Trace) jmap命令(Java Memory Map)   1.…
前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问题. jmap命令 jmap -heap pid 输出当前进程 JVM 堆新生代.老年代.持久代等请情况,GC 使用的算法等信息 jmap -histo:live {pid} | head -n 10 输出当前进程内存中所有对象包含的大小 jmap -dump:format=b,file=/usr/…