2016阿里云数据库双11复盘-自动化备战,0干预

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 2016年双11狂欢节完美落幕,这是阿里云RDS连续第五年支持双11大促,在持续高压力冲击下,整个双11期间0故障0丢单,相比前面四年,在备战过程中更加的自动和主动,今年双11高峰期间达到了0干预的目标。本文由核心参加工程师整理总结今年双11备战过程中在自动化以及性能优化所作的一些改进。

前言

2016年天猫双11购物狂欢节已经完美落下帷幕,高峰期间订单创建每秒达到了16.5万笔,RDS集群的QPS最高达到了400W,其中99%的商家订单在阿里云云数据库服务中完成存储和处理。这是RDS连续第五年支持天猫双11大促,在持续高压力冲击下,整个双11期0故障0丢单,相比前面四年,我们在备战过程中更加的自动和主动,今年双11高峰期间做达到了0干预的目标。这些都是在前期充分的准备工作中所换来的从容,在面对这么大规模实例备战的时候,通过前几年备战经验的积累,我们在产品自动化上继续深挖,主动推送弹性升级,主动对实例进行健康诊断,主动对集群资源迁移离散,秒级监控大盘等等,通过系统和平台将双11的经验沉淀,为双11的稳定平稳渡过奠定了基础。同时在核心链路组件上不断深入优化,用性能的提升达到了成本的节约。下面分享一下今年双11 备战过程中我们在自动化以及性能优化所作的一些改进。
screenshot.png

专家系统主动健康诊断—一千个“DBA”在帮用户

在前面四年双11保障过程中我们发现双11当天往往最容易出现问题是用户自身的应用程序问题导致系统卡慢。双11前没有暴露出的问题,会由于双11当天巨量的订单和高频的系统调用将这些潜在问题放大。提前找出并解决问题是保障双11稳定运行的最佳手段。因此本次双11活动之前,我们就对所有相关数据库进行了全面的体检,将数据库中的潜在风险提前识别出来,并通知用户进行优化和升级。本次双11备战期间我们为客户的实例进行了三轮主动健康诊断,其主要特点:1)诊断报告生成的高度自动化。生成健康诊断报告上万份且全程无人工干预,这一全新的运维方式在之前是不可想象的;2)诊断内容的深度化。从基本的资源使用情况和慢SQL分析,到死锁检测和审计日志全方位统计,再到事务的深层次分析找出应用中的潜在问题等都包含在我们的诊断报告当中;3)运维保障的人性化。本次双11保障不是简单粗暴的让客户升级系统规格,而是以优化为主升级为辅的方式。提前主动给出诊断优化建议极大的提升了用户体验。
screenshot.png

Proxy 性能5W到10W的提升

Proxy作为整个RDS数据通道的咽喉,其稳定性是影响整个双11能否成功的关键因素。今年我们双11在 proxy的稳定性及可运维上进行了改进,同时在性能优化上通过减少消息量及数据拷贝使得性能从原来的5w提升到10w,使得在集群不扩容的情况下,承载了去年2倍的压力,相当于减少了一半的机器。通过调整内核参数SO_RCVBUF来提高proxy与client的吞吐量,对于前端网络质量较差的情况吞吐量提升10倍以上。另外,在双11之前通过proxy的容量评估模型发现集群内各分组的压力不均衡问题,从而进行迁移保证了在双11期间各集群及分组压力更加均衡。同时对聚石塔集群的多项重要指标进行秒级大盘化监控,保证能够快速精确的发现系统的潜在问题及容量风险。
screenshot.png

秒级监控大盘

打仗行军必须要有可靠,准确和及时的情报信息来支撑瞬息万变的战场。在双11当天,秒级监控大盘能够帮助我们实时关注系统健康状态,分组监控大盘帮助我们关注各个战场运行情况,心中有了运筹于帷幄之中,决胜于千里之外的感觉。
• 每秒更新的集群QPS、流量、延迟、连接数核心指标;
• 全量观察所有Proxy节点关键指标的健康度,秒级发现健康情况变差的节点;
screenshot.png

为了能够提前发现Proxy的异常并抓住具体的异常点,我们需要在一个页面上查看多项关键指标在每台Proxy上的健康状况,前端设计上通过热力图的形式来展示,通过精心选择的颜色来标示这个指标的健康情况,多个指标通过tab的方式自动切换。
我们首先需要以最低的损耗全量纪录用户请求的信息,我们在内核TCP协议栈状态机中将每个SQL请求的流量、网络延迟、处理延迟等指标计算出来,并通过内存将数据传到用户态。为了减少发送数据的网络损耗, 首先会在本地进行预处理聚合, 压缩后发送到Kafka集群, 后面用JStorm对不同机器来源的数据进行实时分析。
为了前端的流畅,减少渲染开销,实时趋势图只在页面渲染的时候整条线绘制一次,后面每秒的增量都只做累加绘制;热力图也只在页面渲染的时候才会绘制节点结构,而后面的状态数据更新也只是更改各节点的颜色属性,且五个指标数据共用一个节点结构。
我们在各个环节都做了容错处理,在计算任务上可以出现失败后补回数据,存储上使用RDS作为保障,多节点数据API,前端页面在访问后端出现问题时仔细的处理了异常,保证浏览器页面不崩溃,并在异常恢复后,补回数据继续实时更新。

主动推送弹性升级

弹性升级是商家在双11备战过程比不可少的一个环节,但是每年还是有很多用户不知道是否需要对数据库进行弹性升级。常常看到双11当天还有较多商家进行升级,这个时候其实已经比较危险了,这个时候系统压力往往非常大,对弹性升级的任务是有较大影响的。所以在2016年的双11备战前期,我们的系统能不能够针对用户的系统压力分析,提前通知用户进行升级,这样对双11的平稳渡过有着重要的意义。今年双11期间,通过扫描实例资源使用情况推动客户升级数占总升级的90%。
screenshot.png

移山资源自动打散—让资源流动起来

底层物理资源的稳定和均衡是保障双十一稳定运行的基础,双十一之前我们自动将集群的主机根据负载情况进行自动的离散,最大化的利用集群的计算资源,同时也保障在双11期间没有资源使用没过载的主机出现。双十一备战期间,通过系统共下发离散迁移任务超过1000+次,充分有效地利用了线上资源,为双十一的稳定做出了巨大贡献。双11结束之后,移山可以方向进行资源搜索,将双11扩容的资源再次回收到资源池中,以供其他业务进行售卖,已达到资源的最大化使用。
screenshot.png

Proxy链路-防闪断,防攻击

然后有人可能会问这些后台的资源离散任务是如何做到对用户的访问实现无影响的?其核心的技术就是在代理层对用户连接上的处理--proxy防闪断。通过协议级解析及SQL parse两层逻辑来判断用户的连接请求状态,对于“空闲”的连接通过proxy来完成切换,连接到新的主库地址,并且对用户无感知。对于非空闲比如事务,我们会等待事务结束再进行切换,尽量的减少切换对用户的连接的影响,通过线上的数据我们行到我们防闪断桥接率达到93%。
screenshot.png
Proxy除了连接防闪断能力外,还具有防攻击能力。由于所有的应用请求都经过proxy处理,所以我们在proxy层加入了SQL拦截规则,对于符合注入规则的请求我们可以进行拦截,保护用户数据库的安全。

双11当天问题

通过前期大量的备战工作准备,双11高峰期间我们没有对系统做过任何的干预措施,但收到部分用户反馈的一些典型问题,下面总结如下:

弹性升级任务时间较长

用户的弹性升级过程可能有两类,一类是本机升级,另外一类是跨机升级。本机升级的时间受限于实例本身的压力,如果数据库压力过高可能会导致备库无法完全与主库同步,进而导致升级时间较长;跨机升级的时间除了受限于实例自身的压力外,还与实例的数据量大小相关,具体可以参考文章“高人自有妙计:罗龙九六招制服云数据库大流量峰值”。
screenshot.pngscreenshot.png

用户自身问题导致系统卡慢

双11期间较多客户反馈应用不能响应或rt较长,通过排查定位绝大多数情况是数据库响应请求很快,但是瓶颈在自身的系统设计缺陷以及应用服务器问题,比如DNS请求访问缓慢,或者表结构设计不当,索引缺失等问题。
表结构:
order` (
ID int(10) unsigned NOT NULL AUTO_INCREMENT,
No varchar(50) NOT NULL DEFAULT '',
From varchar(50) DEFAULT NULL,
Shop varchar(50) DEFAULT NULL,
Code varchar(50) NOT NULL DEFAULT '',
Flg int(11) DEFAULT '0',
PRIMARY KEY (ID,No,Code)
) ENGINE=InnoDB AUTO_INCREMENT=176667 DEFAULT CHARSET=utf8
访问SQL:
update order set Flg = '1', No = '11' WHERE No = '11' AND Code='22' and Flg='0'
优化建议:
alter table order add index ind_orderdetail(No)

双11的全民化

随着双11的全民化,有许多企业公司也开始做双11促销,但是他们的经验往往是比较匮乏的。双11当天我们就收到了一些用户的援助请求,由于前期没有做好系统压测,导致在双十一当天业务高峰来临的时候系统垮掉,然后才考虑扩容,这个时候往往已经为时已晚。双11的护航保障经验是可以更广的传播到这些公共云客户上,这也是为什么会写这篇文章的主要原因。

未来,沉淀专家经验到系统中和传承保障经验

双11是全民的双11,云计算是全民的云计算,我们忠心希望未来用户在使用云计算的时候能够像使用水电煤一样简单。我们也会不断地将最佳实践和双11的保障经验沉淀到专家系统中,只有这样才能将其作用最大化,规模化,可复制化,让用户真正简单方便的得到实惠。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
17天前
|
关系型数据库 Apache 流计算
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
22小时前
|
Cloud Native 关系型数据库 分布式数据库
数据库性能诊断工具DBdoctor通过阿里云PolarDB产品生态集成认证
DBdoctor(V3.1.0)成功通过阿里云PolarDB分布式版(V2.3)集成认证,展现优秀兼容性和稳定性。此工具是聚好看科技的内核级数据库性能诊断产品,运用eBPF技术诊断SQL执行,提供智能巡检、根因分析和优化建议。最新版V3.1.1增加了对PolarDB-X和OceanBase的支持,以及基于cost的索引诊断功能。PolarDB-X是阿里巴巴的高性能云原生分布式数据库,兼容MySQL生态。用户可通过提供的下载地址、在线试用链接和部署指南体验DBdoctor。
|
1天前
|
开发者
一键自动化博客发布工具,用过的人都说好(阿里云篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到阿里云上。
一键自动化博客发布工具,用过的人都说好(阿里云篇)
|
4天前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
|
5天前
|
SQL 运维 监控
如何做数据库自动化运维
【5月更文挑战第5天】IT运维中的DBA面临诸多挑战,包括库表设计规范落地困难、SQL审核繁琐、数据提取需求频繁、资源管理和监控复杂。为解决这些问题,引入数据库自动化运维平台至关重要。该平台实现SQL审核自动化,确保语句规范和安全,支持数据提取的自助服务,强化元数据管理,提供一键资源部署,并进行全面的数据库监控。这样,DBA的角色转变为平台管理者,提高效率,规范化流程,减轻工作负担。
|
9天前
|
弹性计算 关系型数据库 MySQL
|
10天前
|
存储 SQL Apache
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
|
11天前
|
数据采集 开发框架 安全
【专栏】阿里云 RPA(Robotic Process Automation)浏览器自动化插件
【4月更文挑战第29天】阿里云RPA浏览器自动化插件是一款基于AI的创新工具,能模拟浏览器操作,实现自动化业务流程,提升效率,降低成本。其特点包括强大的自动化能力、智能识别处理、灵活定制、稳定性能及安全保障。适用于数据采集、表单填写、网页测试、办公自动化和电商运营等场景,助力企业数字化转型。
|
11天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
973 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
11天前
|
安全 数据管理 数据库
数据管理DMS操作报错合集之阿里云DMS控制台上展示出了已经删除的数据库信息,如何解决
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。

热门文章

最新文章