2019年双十一高峰感想

Wesley13
• 阅读 554

今年的2019双十一高峰基本上落下帷幕了,一般情况下是为期一周,到今天17号,我们做到了2019年双十一高峰期间核心业务0故障,稳如山,从双十一前一个礼拜到今天,半个月的时间,相比去年,今年感觉特别的漫长,可能是自己的心中的责任更大了些,在一线站久了好像也麻木不了,反而会更紧张。。。

2018年的双十一高峰我也做过总结,原文地址: https://my.oschina.net/110NotFound/blog/2885795

去掉敏感的业务数据,下面就说下今年双十一的大致技术上的过程。

2019年双十一技术类过程回放:

11.10号之前我们做了很多优化,还因为优化领了一个严重生产事故( 记一次字符类型转换发生的生产事故 ),迁移了几个kafka集群和扩了es集群.( 大型kafka集群平滑迁移

11.10号下午小会议总结下今年双十一高峰期的各种问题预案。

11.11号迎来了双十一,因为是物流业务,所以这一天的量和平时差不多,高峰期在后头。

11.12号,量开始显著上升,已经高于去年双十一的最高峰,这天我们出现了es某些节点写入瓶颈,读取瓶颈,当天晚上紧急进行某些es节点替换到ssd机器。

11.13号凌晨2点多es节点迁移替换完成,又发现了一个查询服务节点宕机的问题( 双十一期间查询服务某节点OOM原因分析 )。

11.13号所有数据量相比平时都有了翻倍,白天就开始突破昨天的最高峰,到了下午,各类接口的qps达到历史最高值,我们最核心的那套redis集群的qpm已经超过百万,这只是其中一套集群的qpm。

11.13号下午,下午16点20分左右,流量的猛增,某网卡可能因为老化等硬件因素出现抖动,备用网卡自动切换上去,应用受到短暂影响,某kafka集群因为网络因素出现消息提交失败,但是马上自动恢复。下午5点,核心应用的cpu告警都开始爆发,但是对应用是没有影响的,因为我们预留了的机器的CPU配置是告警阈值的两倍,当天晚上为了安全起见,向上级领导请示凌晨开始对告警的应用的机器进行扩容CPU,迎接14号的更高峰。

11.14号早上高峰到来,因为很多机器扩了CPU,稳了很多,这一天流量达到最高峰,数据量也是最高,派件核心的数据库平均的qps过了1W,把监控拉细了看,3W的qps也是超过了的。

15号很稳,基本上就平稳了,若干个小问题的出现,和之前一样,别的应用出现波动,但是我们的接口调用的时候做了熔断,所以不会影响主流程。 比如有一些老的代码有导数据的功能,这个特殊时期的数据量是很大的,应用本身负载也很高,就导致了出现导数据的逻辑被执行后,内存暴增发生GC,导致其他线程处理变慢,紧接着就是超时。 还有的应用因为突然的业务量增加,线程池不够用,导致RPC调用过去的时候发现线程池满了等待超时报错。

16号周六虽然量还是很大,但是基本上平稳了。

17号,稳。

总结:

这次的双十一基本全组的同学精神都是崩的紧紧的,这个礼拜真的是漫长又漫长。这次双十一的高峰总体来说还是很顺利的,相比较以往,这次是核心服务0故障,稳如山,即使是出现了一些边角的小问题,对用户也是无感知的,这个有一部分原因要感谢之前做的sentinel限流降级熔断机制。

  1. 通过这次的双十一考验,发现监控真的一定要做好,最基本的CPU内存网络磁盘,这四个基本的监控一定要有,其次就是接口层的监控,响应时间,执行时间等。各类中间件的监控也是需要好的支持。更重要的是告警,现在的告警其实有点乱,有的告警很严重的研发并不知情,因为这个是历史遗留问题,所以在双十一之前我准备了一个小工具应对,写了个告警机器人对接企业聊天工具,实时监听爬取公司总的告警系统,在发现有告警,直接通知到研发群,为什么要这么做?因为核心业务的下游有很多的别组的应用,当别组的应用出现问题,会间接的影响到核心业务(这个不管在理论上还是实际上都已经证实,即使是做了熔断)。

  2. 告警的响应,这个需要考验团队合作能力,因为运维首先收到告警,必须能在第一时间知道这个问题大致是哪个业务线,跟踪到具体的研发团队去处理这个问题。(目前还存在未知的情况,这个问题值得思考)

  3. 研发团队的紧急预案,这个其实很重要,如果一旦发生问题,需要研发人员马上介入进行处理,最后一道防火墙。

  4. 业务划分,在双十一之前,就需要把熟悉相应系统的人员安排到相应的应用,出问题的时候可以第一时间找到问题所在,进行技术支持。

  5. 团队合作,不是嘴上说的团队合作(表面兄弟),这一点我感觉我们团队做的非常棒,在特殊时期需要所有人的心拧成一根绳,遇到问题的时候不管是不是自己的问题,都要了解关注一下,因为业务链路长,指不定走到哪里了就和自己的业务线交接上了。巴西丛林的蝴蝶煽动一下翅膀,就可以引起美国德克萨斯州的飓风。

  6. 技术优化和性能评估,这种东西是创造不了直接收益的(毕竟公司的目的是赚钱),甚至会打击你的自信心(技术优化把BUG优化出来了),但是有追求的研发人员还依然会去做,虽千万人吾往矣。不过话说回来,在双十一之前一定要做技术优化和系统性能评估,而且一定要在高峰期之前的至少半个月前完成,如果发生了问题才有机会补救。(技术优化有的时候是存在风险的,解决了一个BUG,又引入了两个新的BUG。。。) 今年我们的性能评估没有估算准确,因为还是出现了高峰期间晚上加机器抗第二天的高峰,对于技术类的问题,研发人员应该站在一个中立的角度来思考问题(我必须承认我当时考虑了成本问题,当然很大一部分原因还是估算不准,没有过这种经历,高峰期一年比一年高,还是翻番的)。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
双十一预售活动分析
2022年双十一促销活动已经开始,大家应该都提前开始关注今年双十一活动的时间表了吧?2022年10月24日晚8:00天猫双11预售时间,第一波销售时间10月31日晚8:0,第二波销售时间11月10日晚8:00;天猫双11的优惠力度是跨店每满30050
Karen110 Karen110
2年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Stella981 Stella981
2年前
28篇论文、6大主题带你一览CVPR2020研究趋势
  !(http://dingyue.ws.126.net/2020/0625/c176bdbej00qchkrg001ld200p000ang00it0080.jpg)  编译|陈大鑫  编辑|丛末  首度于线上召开的CVPR2020会议已经落下帷幕。今年,大会共有1467篇论文被接收,共举办了29个Tutorial、64
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这