美好的周五 周五的早晨,一切都是那么美好. 然鹅,10点多的时候,运营小哥哥突然告诉我后台打不开了,我怀着一颗"有什么大不了的,估计又是(S)(B)不会连wifi"的心情,自信的打开了网址,果然,真打不开了. 这是存心让我过不好周末呀! 抓住那只bug 经过我缜密的排查,发现是一个"获取今天之前登录的用户"接口调用严重超时: 这个接口其实调用的数据表不多,在mysql只读取了1张表,表结构如下: 获取今天之前登录的用户列表的SQL如下: SELECT u.email…
近期接手离职同事项目,突然遇到线上事故,Flink无法正常聚合数据生成指标. 以下是详细的排查过程: 问题复现 清晨,运维报告Flink数据分析模块无法正常生成指标数据. 赶紧登陆Flink所在机器,使用如下语句简单查看Job状态. ./bin/flink list 查看输出,发现故障Job在Running状态. 因为数据分析模块运行时间较久,近期没有更新过,因此怀疑是依赖的中间件问题. 问题根源定位 (1) 查看数据源 数据分析模块依赖于Kafka,因此登陆Kafka所在机器,查看相应topi…
前言 那天我和同事一起吃完晚饭回公司加班,然后就群里就有人@我说xxx商户说收不到推送,一开始觉得没啥.我第一反应是不是极光没注册上,就让客服通知商户,重新登录下试试.这边打开极光推送的后台进行检查.后面反应收不到推送的越来越多,我就知道这事情不简单. 事故经过 由于大量商户反应收不到推送,我第一反应是不是推送系统挂了,导致没有进行推送.于是让运维老哥检查推送系统各节点的情况,发现都正常.于是打开RabbitMQ的管控台看了一下,人都蒙了.已经有几万条消息处于ready状态,还有几百条unack…
今天线上的hadoop集群崩溃了,现象是namenode一直在GC,长时间无法正常服务.最后运维大神各种倒腾内存,GC稳定后,服务正常.虽说全程在打酱油,但是也跟着学习不少的东西. 第一个问题:为什么会频繁GC 有过JVM经验的开发者都应该知道,GC是在内存不够时,JVM自动进行的自我救赎(删除不用的数据,释放内存空间).那么NameNode在什么情况下会进行GC呢?在解释这个问题之前,需要明白GC的几种级别,以及触发的条件: Minor GC:清理新生代,一般都是复制回收算法 Full GC:…
目录 前言 项目背景介绍 要命的update 结语 前言   从事互联网开发这几年,参与了许多项目的架构分析,数据库设计,改过的bug不计其数,写过的sql数以万计,从未出现重大纰漏,但常在河边走,哪有不湿鞋,就在五一假期的头一天,我干了职业生涯中最愚蠢,也是最刺激的一件事:执行update的时候忘了添加where条件,结果更新了整张表(系统最重要的一张表)的时间字段... 项目背景介绍   简单介绍一下项目背景:大家可以把其理解为一个文章检索系统,前台用户端通过输入日期.关键字以及文章类型可以…
> 线上用户存储数据后查看提示无权限 前言 不知道什么时候年轻的我曾一度认为Java没啥难度,没有我实现不了的需求,没有我解不了的bug 直到我遇到至今难忘的一个bug . 线上用户存储数据后查看提示无权限 初次定位 明明自己添加的数据,为什么提示自己没有权限呢?我一开始自信的认为是我们的客户操作有问题.或者是我们权限配置有问题 但是带我自己亲自验证了一下之后发现这个问题时现时不现,属于一个偶发的问题.这个在开发阶段还真的不容易发现. 问题升级 经过自己的测试后让我更加怀疑人生了,你要么就有问题…
  7月2号晚20:30-22:30 东大博士Dasight分享主题<大数据与Hadoop漫谈> 7月5号晚20:30-22:30  原支付宝MySQL首席DBA分享主题<MySQL发展趋势,MySQL各个分支介绍>.<MySQL 5.6版本号特性介绍及怎样从MySQL 5.5向MySQL 5.6> 7月10号晚20:30-22:30 东大博士Dasight分享主题<Hadoop与Nosql技术的适用性分析> 7月12号晚20:30-22:30  原支付宝M…
昨天下午大神把组内几十号人召集在一起开Online bug分析大会,主要是针对近期线上事故从事故原因和解决方案两个维度来分析. 对金融软件来说,每一次的线上事故都有可能给公司带来重大的损失,少扣了用户的钱,为公司带来资金方面的亏损:多扣了用户的钱,则为带来不必要的合约或法律纠纷,故测试金融软件不比其他行业的软件,后者线上bug大多不会直接引起资金方面损失,最多就是用户体验不好,功能没有实现,导致用户量的流失. 对金融软件来说没有小bug,一旦出现bug那就是重大的bug,必须引起高度重视. 俗话…
sence:python中使用subprocess.Popen(cmd, stdout=sys.STDOUT, stderr=sys.STDERR, shell=True) ,stdout, stderr 为None. 在错误中执行是无法捕获 stderr的内容,后面将上面的改为 subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True),发现是可以拿到 stderr, 但是会遇到大量任务hanging,造成线上事故. 为此特意查询su…
在写这篇blog前,我的心情久久不能平静,虽然明白运维工作如履薄冰,但没有料到这么一个细小的疏漏会带来如此严重的灾难.这是一起其他公司误用puppet参数引发的事故,而且这个参数我也曾被“坑过”.     0. 一个purge参数引发的事故 故事要从周二下午说起,安静了一天的某技术交流群,突然有个惊慌失措的同学在群里说,他直接使用了第三方的puppet hbase module来管理线上hbase集群,结果这个模块在管理数据文件夹时,使用了一个purge参数把几乎所有的线上数据都删完了.他已经和…