维稳618和双11:京东科技数据库海量运维的生态体系建设与实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 维稳618和双11:
京东科技数据库海量运维的生态体系建设与实践
演讲人:高新刚
全球敏捷运维峰会 广州站
2. 目录
海量运维概述
海量运维的高可用体系
海量资源管理
海量告警管理
大促备战分享
全球敏捷运维峰会 广州站
3. 海量运维概述
APP
LVS/SLB
MyAudit
Hadoop
磁带库
CDS/ShardingSphere
PillBox
AKS
数据库集群
DB
Archiver
DBCM
MyDB
研发
DB
DB
CleverDB
DB
OnLine
DBA
全球敏捷运维峰会 广州站
Mega
DBRep 大数据平台
DTS 目标数据库
4. 海量运维的高可用体系
A
B
C
优质的容灾服务质量
RTO<10S
秒级监控
哨兵探测
高效流程快速切换
可靠的切换决策模型
自动识别异常高效监控
极端场景判别
故障自动决策避免误切
良好的兼容性和适配性
不同环境:跨IDC、跨ZONE、
跨主机
不同架构:读写分离、延迟同
步、共享存储
不同中间件:SLB、LVS、CDS、
DNS、PROXY
服务自身的可用性保障
容灾服务组件无状态
跨机房部署
配置库双活部署
服务多活无单点问题
平台自动化管理 丰富的容灾类型
CMDB上下线一站式配置服务
进度状态、历史查询、主动通知
可插拔模块、系统融合
丰富的API接口
可视化信息统计和管理报表 主库容灾、从库容灾
手动切换、自动切换、权重切换
Online switch & offline switch
批量切换、机房容灾
全球敏捷运维峰会 广州站
D
E
F
5. 高可用体系的数据一致性保障
APP
INSERT
Master
INSERT
…
ACK
Binary Log
Relay Log
Binary Log
Semi Sync
INSERT
…
Receiver
Meta-data
Update
全球敏捷运维峰会 广州站
Slave
Applier
Meta-data
Update
INSERT
…
6. 高可用体系的数据一致性保障
APP
INSERT
Binary Log
Master
INSERT
…
Semi Sync
Relay Log Binary Log
INSERT
… INSERT
…
Slave
分组 ACK
分组1 ack数据汇聚容器
MySQL
级
ack数据
汇聚容器
分组2 ack数据汇聚容器
Receiver
Meta-data
Update
分组n ack数据汇聚容器
全球敏捷运维峰会 广州站
Applier
Meta-data
Update
7. 高可用体系的数据一致性保障
类别
半同步
强一致
分组半
同步
主机房从库数量 同城机房从库数量 异地机房从库数量 机房级灾备ACK数量
地域级灾备ACK数
量
1 1 1 >1 >2
2 1 1 >2 >3
3 1 1 >3 >4
x y z >x >x+y
1 1 1 >1 >2
2 2 2 >1 >2
3 2 2 >1 >2
x y z >1 >2
• 从库宕机会影响ack应答,导致业务夯住
• 从库节点越多,ACK应答数量多,影响数据库事务处理能力
• 主库宕机,容灾切换后,ack数量需要手动调整
•
•
•
•
解决从库宕机,网络抖动对ACK应答数量的影响
使用最少的ACK应答数量,实现数据一致性保障
避免主库宕机,对容灾切换的影响。
需要更多的从库节点
全球敏捷运维峰会 广州站
8. 海量资源管理
服务器
机房、机柜
• 资源自动上报
• 服务器使用状态管理
• 数据库与应用信息匹配
• 数据库与业务研发匹配
• 业务访问链路拓扑信息
• 历史信息追溯
网段、ip
实例
业务线
数据库
• 服务器、实例、库、业务线血缘关系
• 元数据变更管理
• 资源使用视图
• 资源使用率报表
• API服务
全球敏捷运维峰会 广州站
9. 海量告警管理
n 触发基线 n 预测规避 n 精确告警
· 制定各告警基线
· 告警方式和级别
· 告警接收人 · 级联效应
· 调整参数 · 减少无用告警
· 降低感官疲劳度
· 节省资源
触发告警
汇总分析
以点推面
调节基线
n 筛选分析 n 自动调节
· 等级划分,主次分明
· 单因多果关联性分析 · 自适应阈值调配
· 自调节时间窗口
· 调整报告
全球敏捷运维峰会 广州站
精确告警
10. 大促备战分享
研发赋能、抓核心链路
监控告警、高可用切换、备份恢复、容量管理、变更管控、应急方案
备战准备
•
•
•
•
•
•
•
备战巡检
容量评估
优化改造
数据归档
压力测试
切换演练
变更管控
大促
• 大促调整
• 监控大屏
• 应急处理
案例复盘
• 事件管理
• 案例分享
• 经验总结
全球敏捷运维峰会 广州站
11. 大促备战分享
自增主键 磁盘空间 表分区 连接数
单表21亿 系统相关 时间维度的分区 活跃连接数
全局自增主键 DB相关 时间维度的拆分 max_connections
备份 热点表 Top SQL 慢查询
备份作业 SQL 频次 SQL 消耗
有效性检查 数据量大
拆分不均匀
影子表 SQL 效率 优化改造
定时调度 容量评估 硬件&机房 业务梳理
业务跑批 ETL抽取 硬件容量 信息采集 备份调度 性能容量 磁盘
Raid卡
出口带宽 机柜超电
双电链路 温湿度
全球敏捷运维峰会 广州站
数据库依赖程度
事务读写逻辑
上下游调用逻辑
12. 大促备战分享
总内存:128G innodb_buffer_pool_size:80G 实际使用内存:118G connections:2000
实际使用内存
118G
Innodb_buffer_pool
80G
Session级别*conn
20G
全球敏捷运维峰会 广州站
=
泄漏内存?
28G
13. 大促备战分享
Ptmalloc:
Jemalloc:
• glibc 实现的内存分配器 • 共享arena
• 标准实现 • 线程缓存
• per thread独享arena • 进一步提升多线程性能
• 提升多线程性能 • 内存主动回收
• 线程结束前不主动回收 • 减少内存碎片
• 内存浪费严重 • 灵活api,可审计和回收
全球敏捷运维峰会 广州站
14. 大促备战分享
• 某系统承载了京东科技业务的流水明细,每日增量5000w+,按日期做的分库分表
• 不定期OOM
• 表数量多\空表较多\开启information_schema采集\定期回收表碎片,内存增速更快
• 加载jemalloc插件后(my_jemalloc.so) ,内存保持平稳,不持续增长,避免发生oom重启
全球敏捷运维峰会 广州站
15. 大促备战分享
持续做、模拟多场景、
应急方案优化
连续自助化、业务视角、
管控视角、发现隐患解
容灾
演练
性能
优化
数据
治理
经验
总结
资源
管控
缓存思想、MQ消费
数据冷热分离
智能评分、使用效率
优化方案、合理扩容
决问题
智能压测、营销预估、
服务的服务、监控的监控
压测
方案
全球敏捷运维峰会 广州站
业务
优化
减少交互、简化逻辑
熔断降级、连接池优化
16. THANK YOU!
全球敏捷运维峰会 广州站