“ 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及 Full GC 次数过多的问题. 当然,这些问题最终导致的直观现象就是系统运行缓慢,并且有大量的报警. 本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路. 对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出 jstack 和内存信息,然后重启系统,尽快保证系统的可用性. 这种情况可能的原因主要有两种: 代码中某个位置读取…
最近一段时间在使用Kindle商城时总是会出现“应用程序出错,无法启动选定的应用程序,请重试.” 对此我花了大约一小时的时间进行测试验证并与客服人员沟通,将过程记录如下,供出现同样问题的朋友们参考. 冒烟测试的流程: Kindle 型号:paperwhite3  固件版本 5.9.7 操作流程:唤醒首页面->点击商城->浏览分类->小说->选择<围城>进入到商品详情页面->>点击返回,页面卡顿片刻后系统提示“应用程序错误”. 多次测验均可稳定复现. 初步怀疑…
一,文章简述 大家好,本篇是个人的第 2 篇文章.是关于在之前项目中,k8s 线上集群中 Node 节点状态变成 NotReady 状态,导致整个 Node 节点中容器停止服务后的问题排查. 文章中所描述的是本人在项目中线上环境实际解决的,那除了如何解决该问题,更重要的是如何去排查这个问题的起因. 关于 Node 节点不可用的 NotReady 状态,当时也是花了挺久的时间去排查的. 二,Pod 状态 在分析 NotReady 状态之前,我们首先需要了解在 k8s 中 Pod 的状态都有哪些.并…
死锁原因 Java发生死锁的根本原因是:在申请锁时发生了交叉闭环申请.即线程在获得了锁A并且没有释放的情况下去申请锁B,这时,另一个线程已经获得了锁B,在释放锁B之前又要先获得锁A,因此闭环发生,陷入死锁循环. 监控死锁 VisualVM监控工具有明显线程死锁提醒,也可监控到发生死锁的线程.类.代码行数.数据类型. 分析死锁 VisualVM生成threaddump,查找死锁代码块内存地址 VisualVM生成heapdump, 使用OQL查看被死锁对象的值和引用 select heap.fin…
前言 作为后端开发工程师,当收到线上服务器CPU负载过高告警时,你会这么做?重启服务,忽略告警?不过在我看来一个合格的工程师是一定要定位到具体问题所在的,从而 fix 它.下面记录一下线上服务器 CPU 负载过高排查过程,把排查流程理清楚,以后遇到问题将会迅速定位到问题所在,快速解决. 什么样的场景会导致线上CPU负载过高? 代码层面常见的场景有: 程序陷入死循环,不停地消耗CPU 线程死锁,线程相互等待,导致假死状态,不停地消耗CPU 程序死循环场景 这里使用 JAVA 简单模拟程序死循环带来…
 原文网址:http://blog.csdn.net/kaitiren/article/details/19974269 JS内存泄漏排查方法(Chrome Profiles)   Google Chrome浏览器提供了非常强大的JS调试工具,Heap Profiling便是其中一个.Heap Profiling可以记录当前的堆内存(heap)快照,并生成对象的描述文件,该描述文件给出了当时JS运行所用到的所有对象,以及这些对 ...     一.概述 Google Chrome浏览器提供了非常…
一.概述 Google Chrome浏览器提供了非常强大的JS调试工具,Heap Profiling便是其中一个.Heap Profiling可以记录当前的堆内存(heap)快照,并生成对象的描述文件,该描述文件给出了当时JS运行所用到的所有对象,以及这些对象所占用的内存大小.引用的层级关系等等.这些描述文件为内存泄漏的排查提供了非常有用的信息. 注意:本文里的所有例子均基于Google Chrome浏览器. 什么是heap JS运行的时候,会有栈内存(stack)和堆内存(heap),当我们用…
在某项目上,使用SQL Server数据库,现场反馈每天定时备份数据库文件,每天的数据量是400多个申请单的量.之前每天增长量是50M,但是后来两天增长量是80M,每天的数据量差不多. 到底从什么地方排查,得到的有几个建议,暂时记录一下,方便排查: 1. 排查数据库中的文件增量设置. 在数据库上,鼠标点击“属性”,找到“文件”选项,查看自动增长的设置,如下图所示.如果按百分比设置,那么随着数据库的数据越多,增量也会随之增加. 2. 有可能是程序导致数据量剧增,这个需要从数据库中的数据量排查. 3…
1. 问题背景 上周线上某模块出现锁等待超时,如下图所示: 我虽然不是该模块负责人,但出于好奇,也一起帮忙排查定位问题. 这里的业务背景就是在执行到某个地方时,需要去表中插入一批数据,这批数据需要根据数据类型分配流水号.这与我的select for update引发死锁分析提到的流水号分配差不多:通过数据库悲观锁实现多实例部署的流水号生成与分配. 2. 问题排查 那么需要排查的问题很简单,为什么获取流水号的时候会发生锁等待超时? 从上面截图中的异常栈中,我们也可以看出:首先进入了带有@Trans…
https://blog.csdn.net/qq_16681169/article/details/53296137 一.出现问题 在前一段时间日常环境很不稳定,前端调用mtop接口会出网络异常或服务不存在的异常.查询了服务器上的HSF会有偶尔挂死的情况,服务器上的接口服务都不可用.于是我们对服务器上的状况进行了排查. 二.排查问题的过程 在这次的问题排查主要是围绕JVM的内存使用情况,生成对象分布情况以及GC情况来讨论的.中间有一些细节一开始存有疑问,迷雾的排除不算太顺利.首先要感谢下基础架构…