多RID分层路径计算性能优化

天翼云开发者社区
• 阅读 5

本文分享自天翼云开发者社区《多RID分层路径计算性能优化》.作者:罗****斌

针对以上问题和性能分析点,进行了以下优化,分别是:

1)基础探测图按rid分层染色计算所有点到点路径,零拷贝

萃取整个路径算法需要修改的部分,单独创建一个临时变量用于不可避免的一次路径计算过程中写操作,防止任何一次两点路径计算更改全局基础探测图操作,这样一个频道下任意两点之间路径并按rid分层染色计算路径都可以在一个基础探测图里实现,而不是每次进行两点之间路径计算就拷贝一次基础探测图,赋值及循环耗时非常大。

2)按rid再细粒度拆分路径计算任务

在之前,最小路径计算单元是点到点之间的路径计算,如果遇到一个点里有多rid,则在计算点到点路径时串行循环计算rid,如果rid很多,则此次路径计算会占用较长cpu时间而无法去处理其它部分。现在对这部分逻辑进行优化,原则就是按rid粒度拆分路径计算单元,挺高并发度,更好的利用协程效应。

3)节点按rid染色分层循环次数缩小至节点个数

之前在图遍历时实时判断rid归属分层并染色,遍历次数和判断次数是:节点个数*节点个数。现在是在创建的临时变量里遍历节点个数并按rid提前进行分层染色,标记为某种状态,称之为预分层染色,大大减少遍历次数和判断次数。

4)路径计算协程个数及队列大小调整

随着业务发展,面临的场景也在不断变化,之前的配置是按一个点到点计算一条路径来优化配置的。而现在按rid分层计算则使路径计算量暴增,点到点拆分出的计算任务按rid倍数增长,需要对其并发处理个数喝队列缓存大小进行调整。

5)json字段优化

在两两互探节点较多时,预处理模块处理性能较之前下降明显。如500*500节点场景下,旧版本1.15.0预处理模块耗时是80毫秒,而新版本1.16.0不开启rid计算并且每个节点携带40个rid时耗时变成940秒,下降11倍,有点触目惊心。后分析发现,耗时基本在json.Unmarshal,预处理以往观察也确实在这块耗时较大,这说明没有引入新的函数导致了预处理模块性能下降。对此,仔细查看json.Unmarshal性能火焰图后发现其中在数组创建上消耗很大,联想到最近新增的rid字段并使用数组类型接收,有可能是这块导致。随后把rid字段去除上报1.16.0版本,预处理模块处理耗时瞬间降低到110毫秒,反向证明rid数组是罪魁祸首。

经过反复思考验证后,把rid字段改为字符串类型性能可到较大提升,预处理模块耗时下降到240毫秒,在多出rid字段处理情况下,性能损耗基本能接受,故新增一个rids字段为字符串类型,删除rid为组数类型字段。

6)路径汇聚优化为两重汇聚

之前的汇聚是一个协程进行按频道名进行路径汇聚,现在按rid拆分计算任务暴增后处理性能跟不上,导致汇聚队列积压影响路径计算速率,计划对这部分进行多次汇聚优化。增加一层并发汇聚,并发数可配置,进行粗粒度汇聚后降低待汇聚条数,然后再定义一个单协程二层汇聚进行最终汇聚,主动汇聚或者被动汇聚在二层汇聚里判断实现。

点赞
收藏
评论区
推荐文章
HPC调度基础:slurm集群的部署
本文分享自天翼云开发者社区@《》,作者:才开始学技术的小白0.引言HPC(HighPerformanceComputing,以下简称HPC)是一个领域,试图在任何时间点和技术上对于相关技术、方法和应用等多种方面实现最大的计算能力;换而言之其目的就是求解一类
AF_XDP技术简介
本文分享自天翼云开发者社区@《》,作者:ln一.概述AFXDP是一项新增的,针对高性能数据包处理进行优化的地址族协议。本文档假设读者已经熟悉BPF和XDP。如果没有,可以参考开源Cilium项目在(http://cilium.readthedocs.io/
ClickHouse内幕(2)基础数据结构
ClickHouse以性能好被大家所熟知,而一个数据库的性能优化是一个庞大的系统性工程。本文着眼于ClickHouse内部的基础数据结构,以揭露ClickHouse性能优化的冰山一角。在软件工程中并不是所有的执行路径都需要优化,只有关键执行路径才需要花费大
ISCSI数据盘的多路径配置
本文分享自天翼云开发者社区《》,作者:wn•多路径出现的背景多路径,就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,
WAAP对提升网站访问速度有什么作用?
本文分享自天翼云开发者社区《》,作者:amberWAAP(WebApplicationandAPIProtection)对提升网站访问速度具有显著作用,主要体现在以下几个方面:1.网络性能优化:WAAP通过优化网络性能来提升用户体验。网络攻击可能导致网站和
Doris 性能优化
本文分享自天翼云开发者社区《》,作者:inDoris通过多种查询优化策略,如Join优化、谓词下推、运行时过滤,字典优化,算子优化等,来提供高性能的查询能力。来提升整体性能Join优化在查询中,Join操作往往是非常耗时的。Doris提供了多种Join优化
安装minio集群
本文分享自天翼云开发者社区《》,作者:2m1.创建minio用户创建用户useraddminio赋予密码(生产环境需强密码)passwdminio设置密码有效期为99999天chageM99999minio2.创建挂载磁盘路径mkdirp/data/min
动态加速中优化失败路径反馈的方法
本文分享自天翼云开发者社区《》.作者:尹聪1背景动态探测是周期性进行的,全局默认2分钟,支持分频道设置探测频率(最低1s探测频率),这就决定了选路也是周期性的,在两次最优路径更新的时间间隔内,如果回源链路发生波动,则只能依靠失败后重试来解决,如果域名并发量
利用排列组合法实现TOPN路径计算
本文分享自天翼云开发者社区《》.作者:罗斌1背景在进行TOPN选路性能摸底时,发现其在100100节点级别以上的两两互相探测情况下的选路性能不太理想,整体压测后分析发现,选路算法部分是整个处理流程的瓶颈点。对此,我分析了下目前计算TOPN路径所使用的深度优
CDN动态加速路径计算集群间数据同步优化方法
本文分享自天翼云开发者社区《》.作者:罗斌背景实时路径计算服务作为动态加速平台核心组件,针对动态交互数据无法缓存于边缘节点,需要实时与客户源站进行交互,同时考虑客户接入点到客户源站之间复杂网络情况以及客户源站突发峰值的不确定性,实时路径计算服务能够避开网络
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
959
粉丝
16
获赞
40