说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

LinkedIn分布式实时性能跟踪与效率优化实例

HTML文档下载 WORD文档下载 PDF文档下载
为了实现对多层服务性能分析的需求,Linkedln建立了实时监测系统,本文的重点是围绕inCapacity工具以及从Samza获得的数据,透过使用实时调用关系图进行有关分析。

【编者按】LinkedIn领英作为全球性职业社交网站,为了能更好地服务用户,提供更加稳定可靠的系统访问服务,LinkedIn在监控方面下足了功夫,建立了自己的实时监测系统。近日,LinkedIn资深工程师Cuong Tran发表了一篇博文,阐述了LinkedIn是如何结合工具inCapacity,通过使用调用图来进行有关性能和问题根源的案例分析。

Linkedln(领英)的基础架构是面向服务的,即使是单个PV(页面浏览)请求也会涉及多个下游服务的调用。所以作为开发者来说,应当重视这些服务间的关系以及相互的性能影响。

为了实现对多层服务性能分析的需求,Linkedln建立了实时监测系统,具体请阅读 基于Apache Samza,揭秘LinkedIn架构背后的技术。而本文的重点是围绕inCapacity工具以及从Samza获得的数据,透过使用实时调用关系图进行有关分析。

利用inCapacity进行端对端性能和效率分析

以下是一个从移动端到网站前台服务的请求示例。


该请求会依次地向多个下游服务发出服务调用。根据前述ApacheSamza Blog 里所说,同一向内调用的服务跟踪会被分组然后重编为消息总线上用于实时分析的单一事件。同一个Web页面的请求会被相同的pagekey标记,这样做的目的是使性能和效率分析着眼于Web应用上下文而不是个别的应用。比方说,移动应用和数据库服务的区别。

透过请求ID,inCapacity会对同一向内调用进行跟踪,遍历调用路径,以不同的指标根据具体的应用上下文进行性能分析。这过程中能帮助开发者取得下述几个重要的性能数据:

  • 服务或应用的使用频率;
  • 哪些服务用时最多;
  • APIs的调用频率,以及哪些APIs会对服务造成最大压力。

inCapacity反映的是架构中使用最频繁的情况;因为服务都是有规律地变更,该信息对于查找什么变更会影响或提升性能是很有帮助的。

请看以下一个简单的调用路径图:


  • 调用路径性能:对于每个调用图中的每条调用路径,inCapacity会进行跟踪计数和对每个API调用的返回时间进行记录。如果一个API会进行向下调用,inCapacity会提取出调用等待时间;其结果是API自身延时数据。例如在上图中,Svc_B中的API_B会依次调用API_C1和API_C2。API_B的自身延时不同于从API_B到API_C1和API_C2之间的延时总和。因此,在比较API自身延时和API总延时时,inCapacity能够判别出造成延时的主因来自于自身还是向下调用。沿着调用路径进行API调用和性能跟踪,能够让开发者了解到APIs对页面的依赖以及性能。
  • 服务负载:对于调用路径中的每个服务,inCapacity会对每个页面的每个向内调用进行计数和延迟汇总。由于跟踪数据会被pagekeys进行标记,inCapacity能对请求发起者的负载进行分组,发起者会是页面或应用,而不仅仅是当前调用者。这样一来可以更好地基于页面上下文进行服务负载分析。

Linkedln中,每15分钟会进行页面调用路径聚合计算。因此API的计数和延时结果是每15分钟的总计数和平均延时。

除了进行性能和根源分析,调用图还可以进行web页面效率分析。例如,对页面发出的向下调用进行开销汇总以计算出页面开销。页面的服务开销与服务的页面负载是成比例的,这类似于页面服务总延时的汇总计算。

最后对于能力计划方面,调用图也是能派上用场的。举例来说,如果想在下一季度把PV提高20%,我们需要对硬件配置进行升级评估。又或者是针对新功能事前进行性能和关联服务性能分析。因此需要做好开销和效益间的平衡取舍。

使用inCapacity进行性能分析

进行web页面应用分析时,使用的是一种自上而下分析法,从高阶概要到具体调用路径,最后延伸到随机抽取调用树。

  • 概要视图从总体上显示了应用对服务的依赖度以及服务的使用频率。inCapacity首先显示了使用得最多的服务。


  • 调用路径视图中显示出从初始PV请求到每个下游服务的完整调用路径。开发者可以进行更细粒度的详细评估,例如应用中服务和APIs的依赖以及性能表现。这种广泛性视图能帮助找出被开发者忽略的向下调用问题,例如后端存储慢的问题。inCapacity会对同一调用级别的调用进行堆排序,以最慢->最快的顺序列示出调用路径。排序的依据是API总延时,是调用计数和平均延时的输出结果。


根据上图数据,造成GET /aaa请求响应慢的原因在于对Service_C的调用,即GET /aaa的自身延时慢于等待时间。如果服务的自身延时比向下调用等待时间还长,那么该服务是响应最慢的服务。继续往下看,可见Service_F是响应最慢的服务。

当进行自身延时计算时,inCapacity会对并行的向下调用进行计算。而并行调用重叠的等待时间会被剔除。

  • 单个调用图视图。该视图显示的是一个随机采样调用图。开发者可以依照时间线查看和检验跨数据中心的服务调用次序。在该瀑布试图下,开发者可以找出需要改进的地方以及分析出向下的调用频率和次数是否合理,2个向下调用之间的时延是否可接受的,又或者对这些调用采用并行方式会否会更加高效。


inCapacity允许开发者进行下列两种流量分析:

  • 性能分析:识别出调用服务的页面,所使用的APIs,使用频率,以及相关的服务性能。分析对象可以是向内和向外调用。
  • 依赖分析:找出受APIs调用与否影响最大的页面。

使用inCapacity进行根源分析

要想对Linkedln这样大型的网站进行性能问题的根源分析是有一定困难的;借助inCapacity的调用图性能比较特性则可事半功倍。

在对不同时间段的调用图进行性能对比时,inCapacity首先会根据总延时对调用路径进行堆排序。然后对不同调用级别的路径进行自身延时比较。如果发现自身延值较大,那么该API便是影响调用性能的问题所在。否则,分析程序会进入下级路径然后重新执行上述判断直到完结。

下图显示了如何使用调用图性能比较来进行Service_B服务调用的问题根源分析。


这里根据时间线和当前时间进行了平均自身延时差值比较。第一级的延时是24.4ms,自身延时仅为5.6ms,因此问题出在下一级。利用类似的思路,我们发现Service_D的自身延时达到11.4ms,所以该调用的性能问题出自Service_D。以此继续分析后得知问题根源是DB会话超限。因此,利用inCapacity进行根源探究是非常便捷的。

综述

实时分布式追踪与调用路径在评估Web应用性能方面是不可缺少的。对性能和服务开销的分析不应孤立进行而是进行综合分析。本文结合工具inCapacity,通过使用调用图来进行了有关性能和问题根源的案例分析,希望对开发者有所启发。(编译:伍昆 责编:张红月)

英文来自:Linkedin Engineering

中科院:常温下的液态金属电路3D打印机 细数IE10里的HTML5特性 使用Twitter Bootstrap的五大理由 Twitter重塑API战略 开启V1.1时代 Sony开放SmartWatch 支持第三方定制固件 甩啦甩啦!Apptopia帮开发者在线买卖App所有权 聚焦全球移动市场:印度,这块肥肉不太肥 Google决定明年一月份停止对Chrome Frame支持与更新 你应该关注的几个Eclipse超酷插件 华为王丰:FusionCube打造下一代融合一体机 上海云人联合创始人吴朱华:中国人也能做出最好的实时数据库产品 Facebook RSS替代Google Reader?或因其社交属性失败 让这么多国外开发者如此兴奋,iOS 7到底好在哪里? Web开发中那些不招人“待见”的功能 最好的超级计算机在中国 为开发者提供的10款Web应用程序 5000万次下载:HandyGames如何征服Google Play? 红帽大战Ubuntu:750小时免费企业版红帽套餐即将登陆AWS EMC Sanjay Mirchandani:92%虚拟化,使更少IT人拥有更大交付能力 从NSA携谷歌、微软等9家名企监控用户行为看数据安全 【专访间】新科兰德创始人左磊:我们的“卖点”是“数据弹药” 甲骨文公司宣布推出最新Java EE 7 10款最佳CSS/jQuery开源图片说明 创业者应避免对投资者说的五句话 直接拿来用!最火的iOS开源项目(二) 西部数据Pat Wilkison:云计算市场是创新热点 猎豹浏览器发布手机版:PM谈开发理念 成为伟大开发者的“九步曲” 使用GPU构建更便宜的Google神经网络 Facebook与Yahoo!的“火花”:系统间实时数据流管理工具 视金钱如粪土?Yahoo!又要买了,梅姐的算盘是这样打的 求助Applet Servlet CreateOleObject('ADODB.Connection')怎么用? 哪位有AIX下的cc,xlC,make的中文使用说明?我的英语太差,看系统的帮助头都大了。 谁有SHA1算法源代码的,给我一份,我很急,一定给分!有网址的,也给分? ODBC SQL SERVER DRIVER timeout expired错误,不知如何解决 请问那位大侠知道哪有北大出版社出版的WINDOWS程序设计这本书的电子版下载 如何控制session的有效时间? VBA下怎样实现...... 很简单的问题,如果得到OS是什么啊? VB怎样调用Oracle没有包的存贮过程? 哪位能提供AIX下的cc,xlC,make的中文使用说明?我的英语太差,看系统的帮助头都大了! 那位有用网叶通过servlet提交数据的例子,越简单越好 救命啊! ----关于漂浮的工具条的隐藏(按钮失踪了!)。 主题:为何我的机子只能进入DOS平台,无法再进入Windows界面? 请问什么地方有《UNIX环境高级编程》的随书源代码下载,谢谢!! 如果得到OS的类型啊?用什么API函数啊? 请问哪有Linux的源代码下载??? 作者如何获得他自己编写的程序的版权及著作权? SOS!!请高手速指点, 立刻要用到,谢谢!! 报表字段过长如何分行打印? 急。。。关于字体属性 Jbuilder5.0 注册码,那个想要,我这儿有!今天刚搞到! 高手再哪里,网络程序!!!请赐教,高分!!! 如何在vc中静态调用dl中的函数? 循环里的变量为什么读不出? ADO的问题,请指教 用Delphi6导入VB做的ActiveX控件,为何不能生成VCL类?怎末办? 我给你出个谜语,你帮我解答个问题? 关于SQL SERVER的图片问题 读取二进制注册表的问题! 请问编写AWT的面向对象JAVA程序用哪个开发软件比较好? 关于手机铃声图片的下载 为何去不到记录值? 软件包 给点建议,做什么都打不起精神.学习也学习不进去,我看我要完蛋了都22了什么都不会 菜鸟问题:编译报错(WINDOWS.H already included),急! 数据绑定问题 关于组件ProgID的疑惑: RealPlayer的最新版本是什么? 哪里可以下载? 请教调试问题? 急!我的weblogic的控制台怎么不让进行create操作? 好郁悶啊﹐大家幫幫我﹗ jsp中的select VC中如何打包 在文本中输入,在下拉框中动态显示,大家多帮忙! 寻找算法!! 参与有分了!! 各位大哥,有关软件测试的好书或好的网站能给小妹介绍一下么? 谢谢各位先!! 学习打不起精神.也不刻苦.天天玩,我看我要完蛋了. 软件发布,KindDiary日记软件 PowerBuilder 中Datawindow和Report的本质区别是什么,什么时候该用Report? MEMO字段在SQLSERVER里应为什么类型? 硬糖每千克5.1元,软糖每千克8.9元,要混合后的糖价每千克5.4元,硬软两种糖应取怎样的重量比才合适 一个正方体的表面积是54平方厘米,这个正方体的棱长是多少厘米? 用一根长240厘米的铁丝折成一个正方体,这个正方体的表面积是( ) (请列式) 一项工程,甲队单独做要18天,乙队单独做要24天,两队合作多少天 两队合作9天,还剩几分之几 一个正方体的表面积和为54平方厘米,它的棱长总和是多少 一条长60厘米的铁丝焊成一个正方体模型,这个正方体的表面积是多少?体积是多少?某校用石灰粉刷教室的四壁和顶棚,室内长8米宽6米高4米,扣除门窗15㎡.如果每平方米用石灰0.25千克,共用多少 一项工程,甲队做要18天,乙队做要24天.问两队合作9天,还剩全程的几分之几? foot在什么情况下用复数形式 有一根铁丝长108分米,要围折成一个正方体,这个正方体的体积多大?表面积是多少平方分米? 一个正方体的棱长和是48cm 每条长( )cm 其表面积是( )cm2 为什么foot的复数形式是foot? 工程队5天可以铺完一条2千米长的水管,3天可以铺这条水管的几分之几,每天铺的长度是1千米的几分之几 一个正方体放在桌上两面靠墙露出来的表面积48cm的平方则它的()条棱长均为()cm 有两箱水果,甲箱水果的重量是乙箱的1.5倍,现从乙箱卖掉水果8千克,现在甲箱水果的重量是乙箱的2.5倍.原来两箱水果各有几千克?方程解 excel A1=0、3、6、9时,B1显示0,若A1=1,4,7时,B1显示1,若A1=2、5、8时,B1显示2,公式怎么写? foot的复数形式是什么? 工程公司计划做一项工程,预计时间7天完成,平均每天完成这项工程的几分之几?4天完成工程的多少?第一步设什么的第二步什么的说清楚 有12dm.18dm和24dm长的铁丝各一根,现在要把他们截成一样长的若干段,而且不能浪费问最长可以截成多少DM的。可以截成几段 foot的 复数形式是什么 一项工程,每天完成他的十五分之一,7天完成他的几分之几?几天完成这个项目?要列式. 有12dm、8dm和24dm长的铁丝各一根,现在要把他们截成一样长的若干段,且不能浪费.截下的每段铁丝最长是多少?一共可以截成多少段? 挑战题:硬糖每千克5.1克,软糖每千克8.9元,现在要求混合后的糖价每千克5.4元, 一个棱长是a cm的正方体,它的棱长之和是 cm,表面积是一个棱长是a cm的正方体,它的棱长之和是 cm,表面积是 平方厘米,体积是 立方厘米 12dm铁丝8根,18dm铁丝7根,截成一样长能截几根,铁丝长几米?随便,列个算式就给分. 正方体的棱长扩大a倍,它的棱长总和扩大( )倍,表面积扩大( )倍,体积扩大( )倍? 建筑对承包了一项工程5天完成了8分之1照这样计算这个建筑队8天可以完成这项工程的几分之几?还剩几分之几?快 棱长为a cm的正方体体积为_____cm^3,表面积为____cm^2小李3小时打字a个,小王4小时打字b个,则小李和小王两人两时一共打____个字.如果-3x^m+1 y^5与7x^2y^2n-1是同类项,则m=____,n=____. 正方体的棱长是a厘米,他的体积是( ),表面积是( ),底面积是( ),棱长总和是( )? foot的复数? 某校实验室新进了一批棱长为a²cm的正方体水箱,请求出表面积和体积 金广建筑工程队做一项工程需要15天,平均每天完成这项工程的几分之几?九天完成这项工程的几分之几 把一个棱长为2cm的正方体全部锯成棱长为1cm的小正方体,表面积增加了多少cm²? 1.列式计算:(1)棱长为a cm的正方体的表面积.(2)每件a元的上衣,降价20%后的售价是多少元?(3)一辆汽车的行驶速度是v km/h,t h行驶多少千米?(4)长方形绿地的长、宽分别是a m,b m如果长 甲袋和乙袋米共重24.6千克,如从甲袋取3.5千克放入乙袋后质量相等,求甲袋原重多少千克?要正确的计算过程 把8个棱长都是1cm的小正方体,拼成一个长方体或一个正方体,拼成的长方体或正方体的表面积各是多少cm² 在下列算式中添上适当的符号和括号,使等式成立.1 2 3 4=1 1 2 3 4 5=1 1 2 3 4 5 6=1 1 2 3 4 5 6 7=1 硬糖每千克5.1元,软糖每千克8.9元,现要求混合后的糖价为每千克5.4元,求硬、软两种糖应取多少重量比合适 用12个棱长1cm的小正方体摆长方体一共有()中摆法其中表面积最大是()cm最小的是()cm 两箱水果,从甲箱取出4分之1千克,从乙箱取出5分之1,这时两箱的水果相等,已知甲箱原 硬糖每千克5.1元,软糖每千克8.9元,现要求混合后的糖价为每千克5.4元,要求硬、软两种糖应取怎样的重量比才合适? 一个棱长2cm的正方体的上表面的正中向下挖一个棱长为1cm的正方体小洞,得到的立体图的表面积是多少平方cm? 两箱水果,从甲箱中取出5/1,这时两箱剩下的水果相等,已知甲箱原有水果60千克,乙箱原有水果多少千克?两箱水果,从甲箱中取出4/1,从乙箱中取出5/1,这时两箱剩下的水果相等,已知甲箱原有 一项工程,甲乙合做6天完成,甲单独做9天完成,甲单独做比二人合做慢几分之几?请分析 把两个棱长为1CM的正方体合成一个长方体,则表面积减少了( )CM 两箱水果,从甲箱中取出四分之一,乙箱中取出五分之一剩下的水果甲箱与乙箱相等.甲箱原有水果32千克,乙箱原有水果多少千克? 硬糖每千克17.8元,软糖每千克21元,硬糖五千克与软糖()千克混合后,平均每千克售价19元 格林童话 有63页,王琳计划7天看完这本书,他平均每天看全书的几分之几?5天看全书的几分之几?5天后还剩余全书的几分之几没有看? Feet当英尺用时可数么?3 Feets high可以么?feet加S可以? 杜南家有一块梯形的菜地,上底是50米,下底是80米,高是40米.如果每平方米收白菜12千克,这块地一共可以收白菜多少千克? 小林看一本课外书计划九天看完,四天可以看这本书的几分之几? 一条公路,10天修完,平均每天修这条公路的几分之几 7天修了多少? foot与book的复数形式?!?!foot的复数形式是feet 那book的复数形式是books为什么book的的复数形式不是beek呢?(⊙o⊙)? 有甲,乙两水果箱,从甲箱拿出五分之一放入乙箱后,两箱水果同样重,那么原来乙箱水果是甲箱的百分之几? 一根铁丝可围成一个长十五dm宽七dm高二dm的长方体模型如果用这根铁丝围成一个正方体的棱长应该是多少分米? foot的复数形式foot的意思为脚的时候复数为feet..那foot的其它意思的复数也为feet吗?附:footKK:[]DJ:[]n.1.脚,足[C]2.(长袜等的)足部[S1]3.步态[U]4.最下部,底部[the S][(+of)]The village is at the foot of the mounta 8千克的5分之3和()千克的8分之3相等 6+36÷3-2×4-1=36 加括号使算式成立 foot 的复数形式 24个6分之5米有多少米?8千克的6分之5是多少千克?12分之5吨的3分之2是多少吨?3分之2的11分之6是多少急用 答对加赏 squre feet 和meter 的区别
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn