专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

改善Istio传播延迟(译文来自Airbnb)

  介绍
  在本文中,我们将展示我们如何识别和解决Airbnb的服务网格性能问题,提供对服务网格问题故障排除过程的见解。背景
  在Airbnb,我们使用微服务架构,这需要服务之间的高效通信。最初,我们正是为此目的开发了一个名为Smartstack的本土服务发现系统。然而,随着公司的发展,我们遇到了可扩展性问题。为了解决这个问题,我们在2019年投资了一个名为AirMesh的现代服务网格解决方案,该解决方案基于开源Istio软件构建。目前,我们超过90的生产流量已经迁移到AirMesh,并计划在2023年完成迁移。症状:传播延迟增加
  在将Istio从1。11升级到1。12之后,我们注意到传播延迟出现了令人费解的增加从Istio控制平面收到更改事件通知到处理更改并将其推送到工作负载之间的时间。这种延迟对我们的服务所有者很重要,因为他们依靠它来做出关键的路由决策。例如,服务器需要有一个比传播延迟更长的正常关闭时间,否则客户端可以向已经关闭的服务器工作负载发送请求并得到503错误。数据收集:传播延迟指标
  我们是这样发现这种情况的:当我们注意到从1。5秒(Istio1。11中的p90)增加到4。5秒(Istio1。12中的p90)时,我们一直在监控Istio指标pilotproxyconvergencetime的传播延迟。Pilotproxyconvergencetime是Istio记录的传播延迟的几个指标之一。完整的指标列表是:pilotproxyconvergencetime测量从推送请求添加到推送队列到处理并推送到工作负载代理的时间。(请注意,更改事件被转换为推送请求,并在被添加到队列之前通过称为debounce的过程进行批处理,我们将在后面详细介绍。)pilotproxyqueuetime测量推送请求入队和出队之间的时间。pilotxdspushtime测量构建和发送xDS资源的时间。Istio利用Envoy作为其数据平面。Istio的控制平面Istiod通过xDSAPI(其中x可以看作一个变量,DS代表发现服务)来配置Envoy。pilotxdssendtime测量实际发送xDS资源的时间。
  下图显示了这些指标中的每一个如何映射到推送请求的生命周期。
  有助于理解与传播延迟相关的指标的高级图表。
  调查xDS锁争用
  CPU分析显示1。11和1。12之间没有明显变化,但处理推送请求花费的时间更长,表明时间花在了一些等待事件上。这导致了对锁争用问题的怀疑。
  Istio使用四种类型的xDS资源来配置Envoy:端点发现服务(EDS)描述如何发现上游集群的成员。集群发现服务(CDS)描述如何发现路由期间使用的上游集群。路由发现服务(RDS)描述如何在运行时发现HTTP连接管理器过滤器的路由配置。侦听器发现服务(LDS)描述如何在运行时发现侦听器。
  对指标pilotxdspushtime的分析表明,升级到1。12后只有三种类型的推送(EDS、CDS、RDS)有所增加。Istio变更日志显示在1。12中添加了CDS和RDS缓存。
  为了验证这些更改确实是罪魁祸首,我们尝试通过将PILOTENABLECDSCACHE和PILOTENABLERDSCACHE设置为False来关闭缓存。当我们这样做时,CDS的pilotxdspushtime恢复到1。11级别,但不是RDS或EDS。这改进了pilotproxyconvergencetime,但不足以将其恢复到之前的水平。我们认为还有其他因素影响了结果。
  对xDS缓存的进一步调查显示,所有xDS计算共享一个缓存。棘手的是Istio在底层使用了LRU缓存。缓存不仅在write上被锁定,而且在read上也被锁定,因为当您从缓存中读取时,您需要将项目提升到最近使用。由于多个线程试图同时访问同一个锁,这导致了锁争用和缓慢的处理。
  形成的假设是xDS缓存锁争用导致CDS和RDS速度变慢,因为为这两个资源打开了缓存,并且由于共享缓存而影响了EDS,但没有影响LDS,因为它没有实现缓存。
  但是为什么关闭CDS和RDS缓存都不能解决问题呢?通过查看构建RDS时使用缓存的位置,我们发现未遵守标志PILOTENABLERDSCACHE。我们修复了该错误并在我们的测试网格中进行了性能测试,以使用以下设置验证我们的假设:控制平面:
  1个Istiodpod(内存26G,cpu10核)数据平面:
  50个服务和500个pod
  我们通过每10秒随机重新启动部署并每5秒随机更改虚拟服务路由来模拟更改
  结果如下:
  性能测试的结果表。
  因为我们的Istiodpod不是CPU密集型的,所以我们决定暂时禁用CDS和RDS缓存。结果,传播延迟恢复到之前的水平。这是针对此问题的Istio问题以及xDS缓存的潜在未来改进。去抖动
  这是我们诊断中的一个转折点:在深入研究Istio代码库期间,我们意识到pilotproxyconvergencetime实际上并没有完全捕获传播延迟。我们在生产中观察到,即使我们将优雅关闭时间设置得比pilotproxyconvergencetime长,服务器部署期间也会发生503错误。该指标不能准确反映我们希望它反映的内容,我们需要重新定义它。让我们重新审视我们的网络图,缩小以包括去抖过程以捕获变化事件的完整生命周期。
  更改事件生命周期的高级图表。
  当更改通知Istiod控制器时,该过程开始。这会触发发送到推送通道的推送。然后,Istiod通过称为去抖动的过程将这些更改组合到一个组合的推送请求中。接下来,Istiod计算推送上下文,其中包含生成xDS所需的所有信息。然后将推送请求与上下文一起添加到推送队列。问题在于:pilotproxyconvergencetime仅测量从组合推送添加到推送队列到代理接收到计算出的xDS的时间。
  从Istiod日志中,我们发现去抖动时间几乎为110秒,即使我们将PILOTDEBOUNCEMAX设置为30秒。通过阅读代码,我们意识到initPushContext步骤正在阻止下一次去抖动,以确保首先处理较旧的更改。
  为了调试和测试更改,我们需要一个测试环境。但是,很难在我们的测试环境中生成相同的负载。幸运的是,debounce和initpush上下文不受Istio代理数量的影响。我们在生产中设置了一个没有连接代理的开发箱,并运行自定义图像来分类和测试修复。
  我们执行了CPU分析并仔细研究了耗时较长的函数:
  Istiod的CPU配置文件。
  服务DeepCopy功能花费了大量时间。这是由于使用了copystructure库,使用goreflection做deepcopy,性能开销很大。删除库既简单又非常有效,可以将我们的去抖动时间从110秒减少到50秒。
  DeepCopy改进后Istiod的CPU配置文件。
  在DeepCopy改进之后,cpu配置文件的下一个大块是ConvertToSidecarScope函数。这个函数花了很长时间来确定每个Istio代理导入了哪些虚拟服务。对于每个代理出口主机,Istiod首先计算所有导出到代理命名空间的虚拟服务,然后通过将代理出口主机名与虚拟服务主机匹配来选择虚拟服务。
  我们所有的虚拟服务都是公开的,因为我们没有指定exportTo参数,该参数是该虚拟服务导出到的命名空间列表。如果不配置该参数,则虚拟服务会自动导出到所有命名空间。因此,VirtualServicesForGateway函数每次都创建并复制所有虚拟服务。当我们有许多具有多个出口主机的代理时,这种切片元素的深层复制非常昂贵。
  我们减少了不必要的虚拟服务副本:我们没有传递虚拟服务的副本,而是将virtualServiceIndex直接传递到select函数中,进一步将去抖时间从50秒减少到30秒左右。
  我们目前推出的另一项改进是通过设置exportTo字段来限制虚拟服务的导出位置,基于哪些客户端可以访问服务。这应该减少大约10秒的去抖动时间。
  Istio社区也在积极致力于改进推送上下文计算。一些想法包括添加多个worker来计算sidecar范围,仅处理更改的sidecar而不是重建整个sidecar范围。我们还添加了去抖动时间的指标,以便我们可以将其与代理收敛时间一起监控,以跟踪准确的传播延迟。结论
  总结我们的诊断,我们了解到:我们应该同时使用pilotdebouncetime和pilotproxyconvergencetime来跟踪传播延迟。xDS缓存有助于降低CPU使用率,但会因锁争用而影响传播延迟,请调整PILOTENABLECDSCACHE和PILOTENABLERDSCACHE以查看最适合您系统的内容。通过设置exportTo字段来限制Istio清单的可见性。
  如果您对此类工作感兴趣,请查看我们的一些相关角色!致谢
  感谢Istio社区创建了一个伟大的开源项目,并与我们合作使其变得更好。还呼吁整个AirMesh团队在Airbnb构建、维护和改进服务网格层。感谢LaurenMackevich、MarkGiangreco和SurashreeKulkarni编辑这篇文章。
  〔1〕:查看我们在Istio上的演示文稿Airbnb以了解详细信息。
  〔2〕:请注意,最后两种情况发生了一些CPU节流,因此如果我们要分配更多CPU,我们预计传播延迟(尤其是P99)会进一步改善。
  〔3〕:Istiod服务控制器监控来自不同来源的注册服务的变化,包括kubernetes服务、ServiceEntry创建的服务等,Istiod配置控制器监控用于管理这些服务的Istio资源的变化。
  〔4〕:PR1,PR2
  作者:YingZhu
  出处:https:medium。comairbnbengineeringimprovingistiopropagationdelayd4da9b5b9f90

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈我真的会笑死01hr你女朋友好像要谈恋爱了02hr这题我会。别人没理我03hr我卖烤肠不丢人吧!我的建议是,不如买一块钱一根的淀粉肠04hr那不得有他姓名?分手了拿luo照威胁我,身边的人都没TVB女星产后复出之作面世,首集与视帝浴室激吻,自曝老公有担忧本文编辑剧透社彤心晓筑未经授权严禁转载,发现抄袭者将进行全网投诉TVB新剧十八年后的终极告白2。0已经在观众的期待声中开播,有追剧的网友应该看得出,该剧可以说保持了前作的水准,不管哪些课外书不能给学生看了?北大教授曹文轩,或成第二个吴勇孟子曰尽信书不如无书。本意是指学生在学习的过程中,不能完全依赖书本。不过当下对于中小学生家长而言,完全变成了另外的含义,那就是学校统一发的课本也不能完全信了。清华美院的吴勇原本在行传祺M6大写的幸福或许早10年前,独生子家庭买一辆小轿车便足以满足日常出行的需求。近年来,随着二胎政策的开放,家用车市场愈发火热。尤其是一家人长途旅行时,轿车显然已经难以满足多胎家庭用户的需求。在面建议如果不差钱,尽量添置这4件高级货,幸福感加倍提升现在人们的生活条件是越来越高了,搬进新家之后,我们需要置办好用的家居物品!好用的家居物件,不仅可以提升家居舒适度,还能够解决你的生活痛点,但我们置办物品的时候,一定要擦亮眼睛,盲目糟糕!中国38金王牌项目暂被踢出奥运会,美国作为东道主以此获利最近国际奥委会对外表示,经过初步确定2028年在美国洛杉矶举办的,第34届夏季奥林匹克运动会中的28个竞技项目,像美国的强项篮球足球游泳田径等项目毫无争议的保留下来,同时还增加了一天气预报今年伏天热吗?农谚热不热,就看五月初一,咋说?导读天气预报今年伏天热吗?农谚热不热,就看五月初一,咋说?有一些人在进入到夏季之后畏热心理油然而生,因为害怕炎热天气,可以说夏季是酷热难耐的,天气太热,吃不好,睡不好,蚊虫又多,这你用什么杯子,暴露了你是什么工作职位?神评太真实!哈哈哈怎么样惊喜不惊喜意外不意外像不像你们放假回家你妈给你盛饭的时候我也会开屏的呀我就应该站在c位上给你们看一下工具上把手是如何做成的求求你来我家跳几下子吧有谁知道前面这个车是什么车吗完南方偏冷状态正在悄然改变,广东率先上岸!北方要注意旱涝急转今年五月,西南,江南,华南大部气温显著偏低。5月1日以来的全国平均气温距平图上能够看到,长江以南大部地区的气温都大幅偏低24度,省会级城市中,南方城市无一例外,全部较常年同期气温偏入选日本男性梦中情人的10位女星桥本环奈仅第7,绫濑遥第2很久没和大家聊聊日本女星了。近日日本的榜单又有更新了,这回是日本男性最想成为恋人的女性的榜单。这个调查是根据500名不同年龄段的男性会员选出,在每年的白色情人节公布,到今年已经是第歌手许嵩疑曝新恋情!和美女做核酸同回小区,对方穿热裤露大白腿5月30日,狗仔拍到网络歌手许嵩在北京和美女同行的视频照,疑似曝光新恋情,引发诸多网友的热议。当天,许嵩身穿拼色衬衫,戴着黑色口罩和帽子,打扮十分低调,从小区一路开车前往核酸检测点
1099起荣耀Play7T正式发布6000毫安电池的千元神机手机中国新闻根据此前相关调研机构的数据,在2022年的中国智能手机畅销机型前十中,荣耀有四款机型入榜,其中包括了荣耀X30荣耀Play30Plus荣耀Play20荣耀60等等,成为比特链NFT,不仅怀旧玩游戏,还能零撸OG代币!今天推荐一款玩游戏零撸OG代币的项目。Ordinals是一个刚刚诞生两个月的协议,但是已经展现出他强大的适用性。目前ordinals上已经出现了PFP生成艺术域名Memebrc20好端端的余大嘴,为什么突然发狠了?如果你有耐心把华为春季新品发布会看完了的话,你就会发现在最后的汽车环节,余承东不再大嘴了,而是在发狠,咬牙切齿地发狠。让余总发狠的原因主要有两点。第一,这是余承东独揽汽车业务之后的今日科普,中国联通便宜的原因头条创作挑战赛相信大家在选择三大运营商时都多多少少了解到联通的价格都比较便宜,这是为什么呢?今天让我爆米花给大家解答一下。中国联通作为中国三大电信运营商之一,其价格相较于其他两家电宇航员在宇宙牺牲后,遗体坠入其他星球,可能成为生命起源吗?在宇宙的无限辽阔中,每一个星球都拥有其独特的历史和特征。而对于一个宇航员来说,在完成他们的使命并最终离开我们的世界后,他们的身体也将成为宇宙中的一部分。不过,出人意料的是,这些宇航适合妈妈夏季穿不捂脚的鞋有哪些?妈妈年轻的时候也是一个很讲究的人,可是随着年龄的慢慢增大。老感觉穿高跟鞋不太稳。夏天来了,到底妈妈穿什么样的鞋子既舒服又不捂脚呢?第一单里瓢鞋,鞋口大,透气性好。面料一般都是比较软什么时候才能让小婴儿外出呢?小婴儿月子里就可以带出去,但是需要适情况而定,太热太冷有风等,当然是不能带出去的。一般情况下,春秋温度适宜,宝宝就可以出门了。我女儿出生在冬天,作为一个完全没有经验的妈妈,我们一个如何判断婴儿是否有脑瘫倾向或肌张力增高的问题?脑瘫宝宝的高危因素有1。宝宝属于早产儿,多发生于胎龄在2834周的早产儿,出生时胎龄越小,脑瘫发生率越高。脑瘫在早产儿中的发生率为32。一般都会伴有大脑损伤,头颅磁共振片显示有脑损电影狙击手反映了志愿军在上甘岭生死对决中的哪些经典战术?大年初一,电影狙击手上映,观众们通过大银幕了解了69年前发生在朝鲜上甘岭上的生死对决。作为美军闻风丧胆的狙击兵岭伤心岭,上甘岭的中国人民志愿军是如何凭借冷枪冷炮同拥有火力和技术兵器怎么评价撒贝宁?当大家对撒贝宁的印象还停留在今日说法里的严肃脸时,他已经活跃在各大综艺节目里央视了不起的挑战网综明星大侦探等等,更因为幽默搞怪的一面,获封了综艺魔王的称号。从法制栏目的主持人,到如修鞋改衣配钥匙该去哪?这张小修小补地图火了日前,广东东莞新上线的一幅便民地图火了,上面登载的既不是城市的景点打卡地,也不是介绍各处餐饮美食而是让急需各种小修小补便民服务的市民,轻松找对地方。相信很多人都感觉到,随着城市快速
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网