微博极端压力下的性能优化
2014年 7月
@微博平台架构
@唐福林
大纲
• 背景介绍
• 面临的挑战
• 平台层的优化
• 未来的思路
背景介绍
• 铁路春运
• 微博春晚
• 淘宝双11
• 秒杀
• 团购
• PUSH
背景介绍
• 每日常规push的内容
– 相关话题
– 热门微博
– 推荐用户
• 热点事件
– 单条微博页
– 话题页(携带相关微博用户)
日常push页
著名的#周一见#push
页涵盖了相关话题、热
门微博以及推荐用户
• 相关话题向微博用户
提供讨论的入口以及
展示热门讨论
• 热门微博是引出或者
深入话题的相关微博,
是在事件中具有重要
影响力的微博内容
• 推荐用户是整个话题
以及微博内容的相关
或者核心人物
热点话题页
在有突发事件或者热点
事件发生的时候,会向
用户推送push
• 话题内容:对突发或
者热点事件的介绍
• 主持人推荐:向用户
推荐话题主持人,并
显示与用户的关注关
系
• 主持人推荐微博:针
对话题的相关微博,
用户可以进行转发、
评论、赞
热点事件的流量模型
• 全量:亿级
• 下发时间:<10分钟
• 用户行为时间:30~60分钟
• 平均点击量:百万级
• 热点点击量:千万级
下发
点击
面临的挑战
• 调用链上每个环节的抗极端峰值能力
• 后端资源的动态伸缩能力
面临的挑战
• 调用链上每个环节的抗极端峰值能力
• 后端资源的动态伸缩能力
mAPI
OpenAPI
Feed服务
Push访问
关系判断 Cache DB
无线
平台
面临的挑战
• 调用链上每个环节的抗极端峰值能力
• 后端资源的动态伸缩能力
mAPI
OpenAPI
Feed服务
Push访问
关系判断 Cache DB
无线
平台
• Nginx/Varnish 七层cache
• 静态化:预先生成html
• PHP Smarty
面临的挑战
• 调用链上每个环节的抗极端峰值能力
• 后端资源的动态伸缩能力
mAPI
OpenAPI
Feed服务
Push访问
关系判断 Cache DB
无线
平台
• 动态扩容
• 分层隔离
• ehcache/page cache
面临的挑战
• 调用链上每个环节的抗极端峰值能力
• 后端资源的动态伸缩能力
mAPI
OpenAPI
Feed服务
Push访问
关系判断 Cache DB
无线
平台
• 自动降级非核心步骤
• 异步并发
面临的挑战
• 调用链上每个环节的抗极端峰值能力
• 后端资源的动态伸缩能力
mAPI
OpenAPI
Feed服务
Push访问
关系判断 Cache DB
无线
平台
最底层的业
务单元
资源层
平台的优化
Client
DB
Cache
平台的优化
Client
Cache Cache Cache Cache
DB
平台的优化
Client
M M M M
DB
S S S S
平台的优化
Client
M M M M
DB
S S S S
L1 Cache L1 Cache L1 Cache
平台的优化
Client
DB
M M M M
S S S S
Cache Proxy
L1 Cache L1 Cache L1 Cache
平台的优化
Client
DB
M M M M
S S S S
Cache Proxy (With Local Cache)
平台的优化
Client
DB
M M M M
S S S S
Cache Proxy
Local Cache
平台的优化
Client
DB
M M M M
S S S S
Cache Proxy
Local Cache
未来的思路
Client
DB
M M M M
S S S S
Cache Proxy
Big
Off heap
Local Cache
未来的思路
Client
DB
Big
Off heap
Local Cache
未来的思路
Client
DB
Big
Off heap
Local Cache
Big
Off heap
Local Cache
Big
Off heap
Local Cache
未来的思路
Client
Local Store
Big
Off heap
Local Cache
Big
Off heap
Local Cache
Big
Off heap
Local Cache
Local Store Local Store
未来的思路
Client
Local Store
Big
Off heap
Local Cache
Big
Off heap
Local Cache
Big
Off heap
Local Cache
Local Store Local Store
Client Client