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

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

VB随机图像的魅力 VB中不规则图形热点的实现 VB中任意旋转位图的实现 VB中实现图像特技 VB中随机图像的魅力 VB中位图旋转的实现 Visual Basic设计图形浏览器示例 捕捉屏幕图象 -VB资料 放置“透明”的图片-VB资料 分割图像的方法-VB资料 如何将整个画面暗下来,如同关机前一般-VB资料 VB获取桌面图象 简单介绍透明位图的实现方法 -VB资料 将图片「非重叠显示」填满整个表格视窗 -VB资料 将英文字母及阿拉伯数字旋转任意角度 -VB资料 将真彩色图像变为256色灰度(BIG5码):-VB资料 VB利用Image控件实现图形浏览程序 利用VB捕捉并保存屏幕图象 切割一个Container中的图片 -VB资料 VB如何改变桌面的图片? VB如何实现“百叶窗”的图形特效? VB如何实现霓虹灯效果 VB如何在VB中用API获得EXE文件图标并显示在Picture控件里 VB如何在VB中直接显示无格式256灰度级图像 VB如何在窗体中平铺图片? 三维字的实现 -VB资料 闪动窗口标题 -VB资料 闪烁的标题栏 -VB资料 实现画面的各种切换方法-VB资料 实现屏幕变暗的效果 -VB资料 实现图像切换效果 -VB资料 做过数据分析的高手请进。。。(我感觉很头疼的一个问题!) 共享Interent怎样实现? 请问绿色程序是如何制作的??? Windows API和C 请问怎样把form中的picture属性中的图片删除? 请看看这个问题? 中程书上的错误?(清华) 各位大虾过来看看,救救我啊! flash简单问题 已知IP,求计算机名 求备份方案,oracle 数据库! 求解決方案:怎樣在運行狀態下增加或取消文本輸入框的滾動條. 大家发表些看法! 各位 帮帮忙,关于答复文档的 如何获取手机中的短消息发送结果状态报告,需要懂一点手机短信的朋友 有没有办法去掉jre1.4下向JTextField输入中文时弹出来的那个恶心的输入窗口? 将web工程加到sourcesafe的问题,十万火急,帮忙解决一定给分,分数不够可以其他方式给。 在sqlserver中有字段类型为image,如何往该字段放图象?200分 基础问题 NT ,when boot ,can not find system 关于internet上的控件打包??????????????? 请各位高手帮忙解决!谢谢!! 谁能告诉我那几个网络论坛比较好 如何实现socket 的多线程 高手请这边来瞧瞧 如何在ODBC应用程序中使用CListView? excelapplication控件???教教我吧,我不知道为什么?很简单的。 关于internet上的控件打包??????????????? 谁知道autovuex.ocx 控件(可以显示CAD等图形)哪儿有下载??拒绝up 大家都用VC吧,这个怎么实现? 能否用变量的内容说明对象 在 广州那边招DELPHI程序员的公司多不多呀! 请问在网页里,图片在装载完前,显示的区域是一个小方框再扩成一个图像,是怎么做的? 如何在ODBC应用程序中使用CListView? 关于获取list控件值的问题!在线等候!谢谢! 请帮忙提供一点怎样学习Delphi的知识! fireworks4.0英文版关于动画的制作? 求租西三环,紫竹院,首师大,航天桥,花园村附近的一居,价位在1000左右 WORD问题 谁知道autovuex.ocx 控件(可以显示CAD等图形)哪儿有下载??拒绝up ●●●最恶心内容,谁看了谁吐,不信,试试看?! 如何从文本文件中读取数据? 怎样建立一个局域网? 高分那里有JBuilder7下载, 提供者都有分(每人5-20分) 请问如何让dbgrid支持多选? 桌面设置小问题? 调用embed 方法播放avi文件需要客户端安装相应软件么? 高分求教两个webbrowser控件问题。 哪里有1.4版的sun.*包的原码? 为什么我打印出来是乱码?打印预览是正确的中文。 因为我是初学者,问了很多问题,都没解决,但是分已经发完,所以请ERP2帮我把分拿回给我,并没有做弊? 建筑系数怎么算呢 给我几个关于昆虫的电影 最好是灾难片 甲乙和打800字的稿件甲打80字乙打90字每分钟甲先打三分钟剩下的两人还需几分钟完成解方程 一副去掉大、小王的扑克牌中,随意抽取一张,抽到的牌是红色的.可能性有多少? 求关于昆虫的灾难片不是老的..那些虫子很恐怖,虫子可以进入人的体内迅速扩散..我只记得那些虫子把北极熊吃光了.感觉那是英或美制作的..线索只有这些了. 儿童教育对孩子将来的成长会有什么好处? 从一副扑克牌中随意抽一张,抽到方块的可能性是多少? 中西方婚礼的异同,用英文表达,以列表形式, 在幼儿园建动物角对孩子们的成长有什么好处? 从一副扑克牌中任意抽取一张,抽到红桃2的可能性与王(含大、小王)的可能性是多少? 做糖醋排骨要什么的材料?我想要我妈妈做出这道菜的味道和酒店一样.可是不知道用什么材料?做过的才好回答.如果做出那种味道,加100!. 畅想青春,展望未来的诗歌最好再加一两句关于中学生风范的一定要是自己编的,而且是在网上未发表的,体现的思想要积极向上麻烦各位了,时间紧急,快,最晚不内超过今天4点. 爱祖国爱家乡征文500~600字谢谢了有关天津芦台的, 谁能介绍一点关于丧尸的恐怖片和杀变异虫子的科幻片?就好比星际争霸(电影版)和生化危机这样的电影! 关于母爱的散文诗最好是自己写的,一定要好!行的话追加50分! 爱祖国 爱家乡的征文 一个长方体铁皮水箱的容积是23.04升,从里面量它的长是6分米,宽是2.4分米.这个铁皮水箱的深是多少分米? 怎样写散文诗 爱祖国爱家乡的征文! 水杯的体积一定大于他的容积对不对 十六年前的回忆 生字是什么急 变化的昆虫有哪些 C++英文读作什么是读作C plus plus?或者C double plus?还是另外的? 十六年前的回忆课文生字都有什么啊 求一些变异昆虫的电影(最好是蟑螂)我超级怕蟑螂,天天晚上出来捕杀,不过我这个可能有点BT,我喜欢看一些变异的昆虫电影,就类似金刚里面那些变大的蜘蛛虫子什么的,我要的只是蟑螂,不 12345678900用英文读作什么 十六年前的回忆生字字义我忘带语文书和字典了谢谢了 急啊 有什么方法一分钟可以打六十个字啊 -140度在英语中读作什么? 扑克牌有几张A 一分钟打60个字慢吗? 39%的英文 读作 扑克牌里为什么1是A 我想测试一下我一分钟打多少字,下什么软件啊 一分钟打60个字速度怎么样?求大神帮助 如题.有人知道油漆的制造过程吗? 一副扑克牌(54张)至少要取多少张才能保证一定有一张方块? 公共建筑的体形系数不能超过多少? 谁能告诉我涂料的种类,和涂料在试用过程中要注意的事项啊, 给推荐几部 人类和成灾虫子或者DNA变异虫子或者植物战斗的电影 星河战队(就第一部好看,剩下垃圾) 和 异型 生化危机 迷雾 系列就别说了 说点别的 没看过的 成本不见得要多高.就要这个 关于住宅节能计算中体形系数的问题.本人刚开始实习,对于节能计算不甚了解,计算体形系数需要知道建筑外表面积和体积,我想知道大家都用什么方法计算外表面积和体积呢,是用计算层建筑 求讲昆虫的恐怖片!最好是国外的! 一步美国电影关于外星人的,一个小男孩和一个外星人,外星人长得像昆虫.是在一本书上看到的 ,海报的样子是这样的,那个外星人长得有点像昆虫,手指头特别长,那个小男孩头发是金黄的,应该 油漆中要加入什么助剂 #英语读作什么? 我是88年的,记得小时候看过一部动画片,有个小男孩耳朵里住着一个会飞的小虫子,是什么动画片呢小男孩,一思考,耳朵里就升温,然后就把小虫子的屁股烧的红红的飞出来,说是热死了什么的,只 助剂 添加到油漆中的 在哪边有卖的 联系方式等等 物体的体积一定大于它的容积吗?——关于体积与容积的教学思考 电影讲外星人.和一个地球男孩外星人好特别看起来好象是昆虫然后男孩救了外星人外星人说三年后.我一定来救是什么电影啊?结果哪个男孩不知道为什么变了外星人的人一样.人不象人.外星 求个动物变异灾难片! 南瓜有什么作用 一部关于昆虫的电影主要就是描写一直瓢虫从出生到四处游历的电影,以瓢虫的视觉拍的,主要就是讲自然界的各种生物,适合小孩子启蒙,忘了叫什么名字了!开始出来的时候 碰到小苍蝇,然后被 求一部灾难片,跟宇宙里吃一切东西的虫子有关就是类似虫子的生物从宇宙里来,吃掉一切可以吃的东西.看了片段, 写一首诗歌或适于朗诵的散文 主题是 畅想世博 展望未来 - - (⊙v⊙)嗯 规划总用地面积怎么算?还有建筑系数 涂料储存期应加入什么助剂? 难忘的风景500字作文 建筑系数怎么算 前言看的一部电影就是一中昆虫飞到人的体内把人杀开昆虫又飞出来了是灾难片 作文:难忘的风景
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘