微博大规模视频处理系统的架构与性能优化
如果无法正常显示,请先停止浏览器的去广告插件。
1. 微博大规模视频处理系统的架构
与性能优化
霍东海 微博平台研发部架构师
2.
3. 讲师简介-霍东海
平台研发部架构师
视频处理系统架构与设计工作
复杂系统性能优化
4. 大纲
背景介绍
微博视频转码服务架构与挑战
转码服务优化之路
总结
5. 大纲
背景介绍
微博视频转码服务架构与挑战
转码服务优化之路
总结
6. 微博视频业务
广场讨论
4亿+月活
开放平台
百万视频分享
7. 微博视频业务
6
8. 微博视频业务
9. 微博视频平台
8
10. 为什么要转码
1080p/1.5Mbps
1080p
5Mbps
720p/1Mbps
TRANSCODE
480p/500Kbps
360p/300Kbps
Input Codec
Video: H.265/HEVC H.264/AVC
VP9 VP8 MPEG4 Part 2 MPEG2
Audio: MP3 AAC AAC-LC
Output Codec
Video: H.265/HEVC H.264/AVC
Audio: AAC
11. 大纲
背景介绍
微博视频转码服务架构与挑战
转码服务优化之路
总结
12. 转码服务系统架构
Storage
1080p
5Mbps
File
Upload
Client
Trans
Center
Scheduler
360p
0.3Mbps
Runner720p
1Mbps
1080p
5Mbps
480p
0.5Mbps
13. 大规模视频转码的挑战
计算复杂
低延迟
高并发上行
高并发、高可用、高性能
微博实时性要求
特点
挑战
14. 大纲
背景介绍
微博视频转码服务架构与挑战
转码服务优化之路
总结
15. 转码服务优化之路
缓存
冗余 并行
静态化 分治
队列化
读写分离
16. 转码服务优化之路-顺序上传
Sequence Upload
store
upload
transcode
Latency
17. 转码服务优化之路-并行上传
Parallel Upload
store
upload
store
upload
transcode
Latency
18. 转码服务优化之路-并行转码
Parallel Upload
Parallel transcode
store
upload
store
upload
split
transcode
transcode
transcode
transcode
merge
Latency
19. 转码服务优化之路-边传边转
store
upload
transcode
store
upload
transcode
transcode
merge
Latency
20. 转码服务优化之路
任务量陡增
更加细粒度的任务调度
更加复杂的任务依赖关系
更高的失败率
基于DAG的逻
辑组织框架
高可用、高性能
的任务调度器
21. 转码服务优化之路
Java
download
Java split
download upload-gop
transcode download-gop
upload transcode-gop
代码拆成闭包
DAG管理闭包依赖
transcode-gop
merge-gops
DAG实现闭包执行
22. 转码服务优化之路
Olympiadane
videoTrans
sve
Groovy
gop
Center
Scheduler
Task
Runner A
Executor
Group
Job
Runner B
Executor
23. 转码服务优化之路-DAG
可组装的独立组件
脚本支持业务
Feature静态实现
DAG动态融合
独立组件独立测试
易扩展
易部署
高性能
22
24. 转码服务优化之路-DAG
down
split
up-gops
23
25. 转码服务优化之路-DAG
down
-gop1
trans-gop1-
360p
up-
gop1
…
down
down
-gop1
trans-gop1-
1080p
up-
gop1
…
split
down
-gopN
up-gops
trans-gopN-
360p
up-
gopN
…
down
-gopN
trans-gopN-
1080p
up-
gopN
…
24
26. 转码服务优化之路-DAG
down
-gop1
trans-gop1-
360p
up-
gop1
…
down
down
-gop1
trans-gop1-
1080p
up-
gop1
down
-gopN
up-gops
trans-gopN-
360p
merge-
360p
trans-gopN-
1080p
merge-
480p
merge-
1080p
up-
gopN
upload
…
down
-gopN
down-
gops
down-
gops
…
split
down-
gops
upload
upload
up-
gopN
…
25
27. 转码服务优化之路-DAG
down
-gop1
trans-gop1-
360p
up-
gop1
…
down
down
-gop1
trans-gop1-
1080p
up-
gop1
down
-gopN
up-gops
trans-gopN-
360p
merge-
360p
trans-gopN-
1080p
merge-
480p
merge-
1080p
up-
gopN
upload
…
down
-gopN
down-
gops
down-
gops
…
split
down-
gops
upload
upload
up-
gopN
…
过程监控
26
28. 转码服务优化之路-DAG
字节码编译技术
Protostuff
27
29. 转码服务优化之路-调度器
高吞吐量
调度任务量陡增(万次每秒)
更加细粒度的任务调度
调度占比低于5%
千级别集群高可用管理
要求99%在10ms以内
更高的失败率
最优调度
28
30. 转码服务优化之路-调度器
调度准确
中心化调度器
去中心化调度器
资源依赖
亲和监控 性能损耗
扩展性更强
优点
调度准确度不够
缺点
29
31. 转码服务优化之路
Task Queue
optimal task
Executor Queue
Scheduler
Executor
optimal executor
Scheduler
Running Queue
push task
acquire task
Executor 1
Executor 2
heart beat
带锁单发调度
Executor
N
32. 转码服务优化之路
Task Queue
optimal task
Executor Queue
Scheduler
Executor
optimal executor
random executor
Scheduler
Running Queue
push task
acquire task
push task
acquire task
heart beat
带锁双发调度
Executor 1
Executor 2
Executor
N
33. 转码服务优化之路
Task Queue
Executor Queue
Scheduler
Executor
Running Queue
TimeOut
Deamon
repush task
Executor 1
Executor 2
10s loop
超时重试
Executor N
34. 转码服务优化之路-调度器
10ms派发
水平伸缩
弹性扩缩容
宕机自动摘除
4个9可用性
33
35. 转码服务优化之路
IDC A
Center 1
IDC B
Center 2
Center N
Redis
Redis
Redis
Center 1
Center 2
Center N
Redis
Redis
Redis
Mysql
Mysql
Agent1 Agent2 … AgentM Agent1 Agent2 … AgentM
Runner1 Runner2 … RunnerM Runner1 Runner2 … RunnerM
36. 转码服务优化之路-其他优化
pmode
me/subme
pme
x265 yasm to nasm
37. 大纲
背景介绍
微博视频转码服务架构与挑战
转码服务优化之路
总结
38. 总结
速度整体提升5倍
集群利用率标准差下降50%
业务支撑效率成倍提升
39. 总结
并行上传 递归
贪心
动静分离
高可用
并行转码 极致并行
低延迟
分治
高内聚
超时重试 低耦合
冗余部署 空间换时间
40.
41. 关注msup微信公众账号 关注高可用架构公众账号
获取更多技术实践干货 改变互联网的构建方式