日常Bug排查-系统失去响应-Redis使用不当 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 开发反应线上系统出现失去响应的现象,收到业务告警已经频繁MarkAndSweep(Full GC)告警.于是找到笔者进行排查. 看基础监控 首先呢,当然是看我们的监控了,找到对应失去响应的系统的ip,看下我们的基础监控. 机器内存持续上升.因为我们是java系统,堆的大小一开始已经设置了最大值. --XX:Xms2g -Xm…
日常Bug排查-消息不消费 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 某天下午,在笔者研究某个问题正high的时候.开发突然找到笔者,线上某个系统突然消费不了queue了.Queue不消费也算是日常问题了.淡定的先把流量切到另一个机房,让问题先恢复再说. 消息累积 然后就是看不消费的queue到哪去了,打开mq(消息中间件)控制台,全部累积到mq上了. 同时开发对笔者反映,只有这个queueu积累了,其它queue…
日常Bug排查-抛异常不回滚 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 最近有人反映java应用操作数据库的时候,抛异常不回滚.这还了得,不过笔者笃定肯定是用法的锅,不然就全乱套了.所以笔者去Review他的代码. 代码片段 @Transacion(value="x") public void s1() throw MyException{ update(1); throwBusinessExceptio…
日常Bug排查-Nginx重复请求? 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,其中不乏一些看起来很低级但很容易犯的问题. 问题现场 有一天运维突然找到我,要我协助排查一个问题.业务开发怀疑Nginx会重复相同的请求,就感觉Nginx自己重试了一样.而PE给我看了下他们的配置,并没有配置任何重试. 第一感觉 我第一感觉就是应该不是Nginx的问题.但是开发怎么得出Nginx重试这个结论的呢? 跟随业务开发思路 于是笔者翻了下他们的邮件,他们是通过P…
 排查流水账: 通过平台监控,发现很多偶发的查看推荐列表的接口时延大于0.5s 写单元测试,不能重现.在测试环境不能重现.只有在正式环境可以偶发重现. 通过日志埋点,等待重现 不断地加日志埋点后发现耗时在redis的hmget操作 这时猜想原因 hmget命令才会有,会不会是hmget命令的问题 查看redis的慢查询日志,发现没有慢查询.排除是Redis执行慢的原因 查看当时的负载情况,负载很低,并发也不多.所以排除是Redis的命令等待原因 多协程下,20条hmget,不会全部都卡,只会卡几…
解Bug之路-记一次存储故障的排查过程 高可用真是一丝细节都不得马虎.平时跑的好好的系统,在相应硬件出现故障时就会引发出潜在的Bug.偏偏这些故障在应用层的表现稀奇古怪,很难让人联想到是硬件出了问题,特别是偶发性出现的问题更难排查.今天,笔者就给大家带来一个存储偶发性故障的排查过程. Bug现场 我们的积分应用由于量非常大,所以需要进行分库分表,所以接入了我们的中间件.一直稳定运行,但应用最近确经常偶发连接建立不上的报错.报错如下: GetConnectionTimeOutException 而…
记一次线上bug排查,与各位共同探讨. 概述:使用quartz做的定时任务,正式生产环境有个任务延迟了1小时之久才触发.在这一小时里各种排查找不出问题,直到延迟时间结束了,该任务才珊珊触发.原因主要就是后台有几个5分钟一刷的定时任务,调度器不停的调度后台任务,阻塞了别的任务,出现了问题. 本文主要目的:1.记录排查过程(思路): 2. 分析quartz的线程调度规则: 3. 针对本问题的相关解决方案: 排查过程:1…
Redis 作为优秀的内存数据库,其拥有非常高的性能,单个实例的 OPS 能够达到 10W 左右.但也正因此如此,当我们在使用 Redis 时,如果发现操作延迟变大的情况,就会与我们的预期不符. 你也许或多或少地,也遇到过以下这些场景: 在 Redis 上执行同样的命令,为什么有时响应很快,有时却很慢? 为什么 Redis 执行 SET.DEL 命令耗时也很久? 为什么我的 Redis 突然慢了一波,之后又恢复正常了? 为什么我的 Redis 稳定运行了很久,突然从某个时间点开始变慢了? ...…
前言 做开发这么多年,也碰到无数的bug了.不过再复杂的bug,只要仔细去研读代码,加上debug,总能找到原因. 但是最近公司内碰到的这一个bug,这个bug初看很简单,但是非常妖孽,在一段时间内我甚至是百思不得其解.在长达几天的时间内,复现的概率非常低.几乎难以抓住任何踪迹. 所以这篇文章就非常写实的来记录一下此Bug的发现和排查整个过程. 起因 同事之前做了个需求,提交测试.测试同事在测的一半的时候.发现了后台的一个报错 com.alibaba.fastjson.JSONException…
[一]创建不同节点的配置文件和目录.并将配置文件中的port,cluster-enable,daemonize项做修改. --->port:修改成redis实例对应的端口号 --->cluster-config-file:都写“yes”值,说明当前节点支持cluster机群. --->daemonize:都写“yes”值,是否以后台daemon方式运行 ,为了查看输出,不让后台模式运行,修改成“no” --->appendonly :都写“yes”值,是否开启appendonlyl…