分布式微服务场景下的灰度干扰研究和应用混部

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 分布式微服务场景下的灰度干扰 研究和应用混部 杨亚南 天津大学 智能与计算学部 ynyang@tju.edu.cn !"#$%&'()$* College of Intelligence and Computing
2. 个人简介 • 学习科研经历: – 2013.9-2017.6 燕山大学 信息与计算科学 本科 – 2017.9-2019.6 天津大学 软件工程专业 硕士 – 2019.9 至今 天津大学 计算机应用技术专业 博士在读 • 主要研究方向 – 云服务干扰研究及性能评测 • 成果:面向混合云数据中心的基准评测程序集设计 – 云混部隔离管控及资源效率优化 • 成果:基于Intel RDT ① 的性能隔离+组件级区分混部控制 – 无服务器计算系统研究及平台优化设计 • 联系方式 – ynyang@tju.edu.cn ①Intel RDT: Resource Director Technology 2
3. 目录 1 相关背景介绍 2 灰度干扰下性能预测 3 组件级区分混部技术 4 讨论与总结 3
4. 研究背景 p云计算已经历两个阶段 n 阶段I:虚拟化云 (企业数据中心) n 阶段II:大数据云 (仓库级数据中心) Reserved Used =3~5× [Delimitrou and Kozyrakis, 2014] 低资源使用 效率 [1] Zhiwei Xu,Chundian Li, Low entropy cloud computing system [J]. Chinese science, information science, 2017 (9). 4
5. 研究背景 p日益增长的云基础设施规模 n微软:数据中心投入已超150亿美元 n阿里云:张北数据中心投入180亿元 p通过混部来改善数据中心资源使用效率 n阿里云:混部集群平均CPU利用率达到 40% [Guo, 2019] n相比10年前虽然有所改善, 但仍有很大的提升空间 [2] Jing Guo, Zihao Chang, Sa Wang, Haiyang Ding, Yihui Feng, Liang Mao, and Yungang Bao. 2019. Who Limits the Resource Efficiency of My Datacenter: An Analysis of Alibaba Datacenter Traces. In Pro- ceedings ofthe International Symposium on Quality ofService (IWQoS’ 19). ACM, New York, NY, USA, Article 39, 10 pages. 5
6. 研究背景 p云计算的下一个十年 n 保障应用性能同时具有高资源利用率 l 谷歌:Cloud 3.0追求速度、实时、隔离、利用率 l 阿里:开放数据中心Trace,广泛征求解决方案 l Berkeley:Cloud computing for the millions 课题来源:国家科技部重点研发计划“软件定义的云计算基础理论与方法”(2016-2021) 6
7. 研究路线 • 云混部评测基准,评价云计算系统负载混部能力 • 干扰感知混部技术+软件定义强控制提高系统效率 微服务场景下的组件级区分混部技术 在云场景局部干扰现象下,基于微服务组件的抗干扰不一致性进行区分混部 和资源隔离控制,提高系统混部效率。 干扰控制 微服务场景下的局部干扰性能预测 针对云场景下微服务应用组件在时-空维度的干扰变化进行分析建模, 采用机器学习方法进行混部性能预测 干扰评测 混合负载基准评测工具SDCBench 6个在线+10个离线型典型云计算负载组成的混部评测程序集,支持不 同云场景下的应用混部、性能测试与实验环境构建 7
8. 研究路线 SDCBench混部基准 • SDCBench:用于评测云计算系统在多应用混合 部署下的性能隔离性,用于干扰场景构建和相关实验。 • 收集51种常见类型云应用并进行筛选: 领域 典型性 资源 密集型 体验 覆盖度 8
9. 研究路线 SDCBench混部基准 • SDCBench:包含6种典型在线应用和10种离线应用 • 基于聚类分析筛选得到的代表性程序集 木兰社区-开源项目 计算干扰型组合 计算共生型组合 9
10. 目录 1 研究成果介绍 2 灰度干扰下性能预测 3 组件级区分混部技术 4 讨论与总结 10
11. 什么是灰度干扰? [Jeffrey Dean2013] • 灰度干扰定义为只发生在应用部分组件或局部时间段内 的干扰 11
12. 新的微服务场景—函数计算 函数计算业务增长 - Google Trends 120 A Berkeley View on Serverless Computing [2019] 100 80 60 40 20 AWS lambda 0 Aug-15 Aug-16 Aug-17 Aug-18 Aug-19 Aug-20 Aug-21 [3] Eric Jonas, Johann Schleier-Smith, Vikram Sreekanti, Chia-che Tsai, Anurag Khan- delwal, Qifan Pu, Vaishaal Shankar, Joao Carreira, Karl Krauth, Neeraja Jayant Yad- wadkar, Joseph E. Gonzalez, Raluca Ada Popa, Ion Stoica, and David A. Patterson. 2019. Cloud Programming Simplified: A Berkeley View on Serverless Computing. 12
13. 函数计算负载特征 间歇性触发负载 (BG) • IoT设备采集、监控事件等 短期类计算任务 (SC) • Mapreduce/Spark、线性代数等. 延迟敏感性服务 (LC) • 搜索、电子商务、社交网站等 小体积函数 0.125-3GB Memory 短生命周期 ≤ 900 s 13
14. 函数计算负载特征 小体积函数 高密度部署 • 单台服务器可以承载上千函数规模 短生命周期 更复杂的 干扰问题 高动态性 • 函数在任意时间都可能执行启动或释放操作 14
15. 应用性能干扰 尾延迟 平均延迟 The middle 80% The tail 1% [Jeffrey Dean2013] • 应用性能干扰会导致长尾延迟现象 15
16. 函数计算中的灰度干扰现象 灰度 干扰 • 理解灰度干扰 • 预测灰度干扰 • 干扰控制调度 16
17. 函数计算中的灰度干扰现象 • LS: 社交网站应用 (9个组件) • BG/SC: functions) • matrix multiplication, • video processing, • iperf, • dd, • LR, • Kmeans etc. • 函数计算场景中,灰度干扰的现象更为严重 17
18. 理解刻画灰度干扰 灰度干扰场景 1 干扰的高可变性 • 无服务器函数具有不同的 运行时和资源消耗特征, diff > ?× 这使得局部干扰更加具有 不确定性 • 灰度干扰存在极大不确定性,其对应用性能带来的影响介乎于 全部干扰和“零”干扰之间 • 在灰度干扰的场景中,99th百分位延迟的差异达到了7倍 18
19. 理解刻画灰度干扰 灰度干扰场景 2 干扰的空间变化性 • 体积小,无状态的无服务 diff > ?× 器函数使得微服务场景下 的局部干扰在空间上发生 快速变化 • 关键路径(如1-2-3-8-9)上的局部干扰要比非关键路径 上的干扰带来更严重的性能下降 19
20. 理解刻画灰度干扰 3 干扰的时间变化性 • 短生命周期的无服务器函 数使得微服务场景下的局 部干扰部分在短时间内发 生快速变化 • 逻辑回归(LR)的JCT与Kmeans在空间维度的灰度干 扰下最大性能差异变化超过2倍 20
21. 理解刻画灰度干扰 4 干扰的热点传播性 • 局部干扰会触发整个函数 调用路径的连锁反应,并 导致完全相反的效果 • 局部干扰发生所在组件后续调用函数的QPS下降 • 瓶颈网关降低了所有其它函数的业务处理速度 21
22. 理解刻画灰度干扰 5 干扰的恢复传播性 • 在灰度干扰节点上的施加 局部控制可以改善性能, 但会给临近节点带来影响 • 由于业务调用恢复,局部的干扰控制增加了其它函数 的延迟 22
23. 理解刻画灰度干扰 6 干扰的可预测性 • 通过函数级的刻画可以实现对灰度干扰的精确预测,从而改善工 作负载的QoS • 相比应用级的粗略性能刻 画,函数级的粒度刻画可 以降低平均2倍的预测误 差 23
24. 灰度干扰可预测性 干扰预测 • 高可变性 • 空间变化性 灰度干扰 • 时间变化性 • 热点传播性 • 恢复传播性 • 可预测性 时空干扰感知 全局决策 函数刻画 24
25. 预测灰度干扰 p 基于函数计算的微服务场景中消除尾延迟? • 高密度 • 高动态 被动控制 线程 线程#1 线程#2 线程#3 控制 监控 CPU时间线 被动控制 控制机制生效 CPU • 通过细粒度的资源隔离和主动干扰控制 有助于实现 • 高性能和高吞吐的云计算系统 25
26. Gsight 预测器 p基于 “时空干扰”- 感知的增量学习方法预测器, 通 过对端到端调用路径中函数的刻画信息进行学习训 练,可以快速收敛到较高精度 单次函数级刻画 时空重叠编码 增量学习模型 26
27. Gsight 预测器 27
28. Gsight 预测器 • 函数级刻画 • 单独运行 • 非侵入式 • 系统层指标 • 微服务层指标 p16项刻画指标: CPU, memory, network, I/O, branch MPKI, context-switches, LLC, CPU frequency, L2/L3 MPKI等. 28
29. Gsight 预测器 • 增量学习 • 回归模型 • 时间重叠编码 • 空间重叠编码 29
30. Gsight 预测器 行数 = VM节点数量 U 1 • 时空重叠编码 • (D 2 , D 3 ) = (0, t delay ) • U 1 , U 2 U 2 ? ? ?? : 表示负载i被部署到节点j上的 第k个指标 30
31. Gsight 预测器 p机器学习模型 nIKNN, IRFR, IMLP, ILR, ISVR, ESP [Mishra2017], Pythia [Xu2018] nIRFR方法得到的IPC预测误差小于5% 31
32. 灰度干扰感知调度 • 设计一个简单的二分搜索算法 • 最大化资源分配效率, 在尽可能少的节点上部署所需的函数 实例, 同时保障混部应用的性能 • 从完全重叠开始搜索部署方案 • 预测干扰违反SLO则减半混部数量,再次探索 活动 二分法 探索 干扰 预测 如果应用延迟无法保障 结束 32
33. 实验评估 • 工作负载: • BG/SC: ServerlessBench [Yu2020], FunctionBench [Kim2019]; • LS: 社交网站和电子商务微服务系统; • Azure trace [Shahrad2020] • Testbed: • OpenFaas 33
34. 实验评估 • 快速稳定的收敛过程: • 函数级细粒度刻画使得Gsight可以快速收敛,同时收敛 后的预测精度保持稳定. • 相比于有状态服务系统,Gsight-IRFR 仅需要1/3的训练 样本数据大小便可以收敛到同等预测精度水平 34
35. 实验评估 • 函数部署密度 • 相比于Pythia 和 Worst Fit, Gsight 调度器平均可 以分别提高18%和48% 的函数部署密度 35
36. 实验评估 • CPU 资源利用率 p相比于Pythia 和 Worst Fit, Gsight 调度器可以改善 30.02% 和 67.51% 的平均 CPU利用率 36
37. 实验评估 • SLA保障 • Gsight 调度器可以保 障社交网站应用中 95.39% 的请求满足 SLA要求 37
38. 实验评估 p开销 • 3,000 样本点花费小于2 人-小时, 单次训练时间 < 10分钟 • Gsight 单次预测花费 3.48 ms • 调度的时间占用也很小 • Gsight需要高扩展的Gateway 支 持 38
39. 本章小结 • 通过研究先前被忽视的局部干扰,有助于我们进一步 理解尾延迟 • 函数计算使得云场景下的资源管理更加具有挑战性 • 在函数计算的微服务场景下,结合主动的干扰控制 和细粒度的资源隔离将有助于实现高吞吐和高性能 • Gsight 只是在利用机器学习方法学习和预测灰度干 扰方面迈出了一小步 39
40. 目录 1 研究成果介绍 2 灰度干扰下性能预测 3 组件级区分混部技术 4 讨论与总结 40
41. 被动应用混部控制 p 应用混部:改善资源利用率 p 先前的混部调度可以分为两类: p 依赖工作负载的事先刻画 p 实时负载和性能监控 p 基于共生互补进行调度决策 p 资源配置的被动调整 41
42. 被动应用混部控制 p 多组件的微服务应用场景: 来源: [Deathstarbench, ASPLOS’19] 来源: [Google, Datacenter Computers modern challenges in CPU design, 2015] p 基于社交网站的微服务应用 评测基准 p 单次交易请求跨越 ~40 机架, ~60 服务器 p 31 微服务组件 p 模式: 客户端-服务器 RPC. 42
43. 问题定义 p 当多个组件协同服务一个请求时,我们如何进行反 馈控制? • 端到端延迟: L overall = L cpn 1 + L cpn 2 • 尾延迟: TL overall = TL cpn 1 + TL cpn 2 8VHU 1HWZRUN 1HWZRUN 给定整体的端到端延迟约束 TL, 如何分配每一个组件上的延 迟来保障整体SLA? 或: 如何通过组件-控制来保障整体的延迟? 43
44. 组件抗干扰不一致性 Redis 架构: 电子商务网站架构: p 在相同的干扰源下,不同的服务组件受到干扰时整体应用的性能 影响可能差异巨大 (~435%) 44
45. Rhythm 系统设计 p Rhythm 设计思想: n 对整体延迟贡献度更小的组件可以被积极地混部更多的BE应 用,从而改善系统资源利用率 p 新的挑战: n 如何定义和量化组件的延迟贡献度? n 如何积极地控制BE作业的部署? l 决定何时进行混部? l 决定给LC组件混部多少BE作业? 45
46. Rhythm 系统设计 p Rhythm系统组件: n 请求追求器 n 贡献度分析器 n 混部控制器 进程 绑定进程到核心 CPU 映射LLC到CPU核心 LLC • Intel RDT CPU核心 级别隔离 组件级区分混部系统架构 46
47. 请求追求器 p 追踪请求调用: User Network Server 1 Network Server 3 Server 2 User Component Network Network 47
48. 请求追求器 p 因果路径图 n Send/Receive events: ACCEPT, RECV, SEND, CLOSE n Event: < type , timestamp , context identifier , message identifier> n Context: < hostIP , programName , processID , threadID > n Message: < senderIP , senderPort , receiverIP , receivePort , messageSize > 48
49. 请求追求器 Server 1 Server 2 User Component Network User Servpod 1 Network Network Servpod 2 Network Servpod 3 p Servpod 抽象: n部署在同一物理服务器内部的LC应用的相同组件的集合 n用于计算每个请求在每个服务器上的停留时间 49
50. 请求追求器 User Servpod 1 LC Servpod 1贡献度 Network Servpod 2 LC Servpod 2 贡献度 Network Servpod 3 LC Servpod 3 贡献度 p 贡献度分析: n受到干扰时对整体延迟影响较大的Servpod具有更大的贡 献度 50
51. 贡献度分析器 均值 变异系数 n Servpods 具有较高平均执行时间 n Servpods 具有较大的执行时间变化波动 n Servpods 的执行时间同尾延迟有较大的相关性 51
52. 贡献度分析器 p 贡献度定义的合理性? n 敏感性 v.s. 贡献度 n当单个Servpod受到不同BEs的干扰时,99th分位延 迟增加: l 将BEs同 wordCount, imageClassify, LSTM, CPU-stress, stream-Dram 和stream-llc混部 l DRAM 压力: Stream-dram l CPU 压力: CPU-stress l LLC 压力: Stream-llc 52
53. 混部控制器 LC Servpod 1贡献度 BE jobs … Agent 4 LC LC Servpod 2 贡献度 Agent 2 Server 1 Servpod 3 贡献度 Agent 3 LC LC BE LC BE Server 2 BE Server 3 p 控制器阈值: n Loadlimit: 当 load<loadlimit时, 允许进行混部(决定是否混部); l 性能-负载曲线的拐点“Knee point” n Slacklimit: 用来控制BEs作业负载增加下限(决定混部多少) l Slack = 延迟SLA目标 – 当前延迟 l 贡献度小的组件具有更宽松的slacklimit约束值 53
54. 混部控制器 p 混部控制器架构 n 全局控制器 (负责子控制器的决策信号) n 节点控制器(负责节点内的应用混部) 全局控制器算法 子控制器算法结构 54
55. 混部控制器 p 如何设定Loadlimit阈值? nServpod具有独立的LoadLimit设定 n取值定义为“允许该Servpod混部BE作业的请求负载上 限” nknee point拐点:当负载超过某个值导致延迟剧烈变化 的点 55
56. 混部控制器 p 如何设定Slacklimit阈值? nSlacklimit: 当前服务延迟距离违反SLA的“余量” Init. Slacklimt _ 1 = 1 Init. Slacklimt_2 = 1 1-contribution2 1-contribution1 … 1-contribution2 1-contribution1 迭代探索 SlackLimit Slacklimit2 1-contribution1 Slacklimit1 Servpod 1 Slacklimit设定算法 1-contribution2 … Servpod 2 • contribution_1 < contribution_2 • slacklimit_1 < slacklimit_2 56
57. 实验评估 p基准程序: n LC服务 n BE作业 l Apache Solr:Solr engine+Zookeeper l CPU-Stress; Stream-LLC; Stream-DRAM l Elasticsearch:Index+Kibana l Iperf:Network l Elgg:Webserver+Memcached+Mysql l LSTM:Mixed l Redis:Master + Slave l Wordcount l E-commerce: Haproxy+Tomcat+Amoeba+Mysql l ImageClassify: deep learning n 实验环境 16 Sockets, 64 GB of DRAM per socket, L3 cache 20MB. CPU 型号:Intel Xeon E7-4820 v4 @ 2.0 GHz: 32 KB L1, 256 KB L2 操作系统:Ubuntu 14.04 with kernel version 4.4.0-31. 57
58. 整体性能 EMU CPU Utilization MemBan utilization p 整体对比 (对比 Heracles [ISCA 2015]) n改善EMU (=LC 吞吐+ BE 吞吐) 11.6%~24.6% n改善CPU 利用率 19.1%~35.3% n改善内存带宽利用率 16.8%~33.4% 58
59. 系统控制过程 p 时间轴: n Time 3.3: suspendBE(); n Time 5.6: allowBEGrowth(); n Time 7.7: cutBE(); n Time 9.3: suspendBE(). 59
60. 本章小结 p Rhythm是一个分布式的混部控制器,通过利用组件间的抗 干扰不一致性,在保障LC服务性能的同时尽可能多地混部 BE作业,从而改善系统吞吐 p 设计架构简单,全局决策+局部控制+细粒度的软硬件隔离 机制保障混部性能。 p Rhythm提供了设计思想,在实际生产环境落地需要进一步 修改和适配,比如结合Dapper追踪系统[Google 2010]。 p 后续增量工作—基于优先级的BE作业控制,避免“用而无 用”,进一步改善混部效率 [4]Benjamin H. Sigelman, Luiz André Barroso, Mike Burrows, Pat Stephenson, Manoj Plakal, Donald Beaver, Saul Jaspan, and Chandan Shanbhag. 2010. Dapper, a Large-Scale Distributed Systems Tracing Infrastructure. Technical Report. Google, Inc 60
61. 未来展望 p 在学术界和工业界,干扰研究已经存在大量的工作 p 基于性能预测的主动控制或者基于监控的被动资源调整 p 采用的方法大致包括单独刻画、分类放置、机器学习模型、 启发式探索等 p 硬件隔离机制 CPU核心级别隔离,同一个socket内部CPU 核心共享缓存,内存带宽以及总线 p 线程级资源隔离,引入标签机制打通软硬件全通路,变革现 有云计算技术栈 61
62. 交流与讨论 p 相关资料 Gsight文章:Laiping Zhao, Yanan Yang, Yiming Li, Xian Zhou, Keqiu Li: Understanding, predicting and scheduling serverless workloads under partial interference. SC 2021: 22:1-22:15 Rhythm文章:Laiping Zhao, Yanan Yang, Kaixuan Zhang, Xiaobo Zhou, Tie Qiu, Keqiu Li, Yungang Bao: Rhythm: component-distinguishable workload deployment in datacenters. EuroSys 2020: 19:1-19:17 SDCBench设计实现:https://gitee.com/jiaxuechao/sdcbench Gsight设计实现: https://github.com/tjulym/gray Rhythm设计实现: https://github.com/yananYangYSU/Rhythm 62
63. 谢谢观看 63

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 22:50
浙ICP备14020137号-1 $Map of visitor$