超大规模即时通讯系统性能优化探索及实践

超大规模即时通讯系统性能优化探索及实践

1. 超大规模即时通讯系统 性能优化探索及实践 融云 - 李淼
6. 介绍 融云 首席架构师,联合创始人 10年IM领域设计和研究经验 • 实时通讯云计算平台 • 日均活跃数 6500 万 • 日消息峰值 2200 亿
7. 目录 性能问题定位及关注点 高并发系统技术要点 性能优化案例 系统设计把控
8. 性能问题关注 • 程序正确响应时长 • • 程序正确响应时长,及并发情况下的拐点后移。 系统 • CPU • 数据存储 • 数据通讯 Memory I/O
9. 性能问题的定位 • 第一阶段 系统监控,系统日志,诊断工具 • 第二阶段 开源APM • 第三阶段 自研Monitor监控
10. 高并发系统技术要点 • 异步 • 缓存策略 • 数据结构及算法 • 数据存储
11. 异步通讯 RPC Client Service A Service B 异步RPC Actor Client Service A Service B Client Service A Service B
12. 缓存策略 数据 分布式缓存 • 尽可能的使热数据离用户近一些 • 提高缓存的命中率 本地缓存 客户端缓存
13. 数据结构及算法 • 适合场景的高效数据结构 • 高效的算法
14. 数据存储 • 场景! • 关系型数据存储,K/V 数据存储
15. 性能优化案例 -- CPU篇 • • 字典树->DAT • 场景:敏感词过滤 • 优化效果:CPU降低30% 跳表->环形队列 • 场景:消息缓存 • 优化效果:降低锁占用时间,高吞吐率提高100%
16. 性能优化案例 -- 内存篇 • • key 的缩短 • 场景:缓存占用内存过高 • 优化效果:降低内存10% LRU-> LIRS • 场景:冷数据轰炸 • 优化效果:提高缓存命中率,降低存储压力
17. 性能优化案例 -- IO篇 • • 状态数据的延迟写入 • 场景:用户消息状态频繁更新 • 优化效果:并发下数据的多次写入变成1次写入 监控数据添加缓存区 • 场景:监控数据数据量及并发高 • 优化效果:请求降低2个数量级
18. 性能优化案例 -- 数据存储篇 • • RCTSDB • 场景:消息存储的特殊型 • 优化效果:存储设备缩减1半 根据业务调整MySql存储引擎 • 场景:数据磁盘占用高 • 优化效果:存储使用率降低了70%
19. 系统设计把控 • 系统设计 • 架构设计 • 技术选型 • 程序实现
20. 期待与您合作, 共同改变世界!