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

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

代码审查,也要天时地利人和 Clash of Clans产品总监:游戏中的商品定价一开始就要高 移动互联网最核心的竞争是:设计的竞争 【直击美国云计算】面对AWS,VMware不会畏缩 美国白宫任命Twitter法务总监Nicole Wong为副CTO Keek宣布推出首款视频Update API 专访阿里前端工程师:淘宝移动Web开发那些事儿 【直击美国云计算】为什么eBay用燃料电池来驱动他的犹他州数据中心 【直击美国云计算】6周发布新产品,LinkedIn的trunk-based开发 移动周报:疯狂吐槽还是更得欢心?细数iOS 7的是与非 国内最受欢迎的开源项目集锦 开始3D编程前需注意的十件事 [CTO俱乐部第100期]软件平台的新思维及2345技术团队管理经验分享 失败怪圈:今天的移动App在重蹈1999年的覆辙 极客编程必备的五大PHP开发应用 Oracle或将宣布与Salesforce.com,NetSuite以及微软结盟 【专访间】神州数码谢耘:智慧城市需要以“融合平台”为特征的沃尔玛模式 对话OW2 CEO:开源≠安全隐患,免费≠无利可图 不断抄袭的Facebook正逐步沦为一家普通的公司 Windows 8.1会不会把Windows 8的“Modern”开发者踢到路边 任志鹏:FusionCloud是华为二十年技术积累的精华 机器学习典范?iOS7中的Siri能主动学习如何发音 三星宣布关闭PC业务 主推便携设备和一体机 Web设计师必须掌握的六大设计策略 Facebook为什么要推Instagram视频分享功能? 天气预报(id后面的9位数字为城市代码)年月日,星期,当前时间(仅用于javascript) PHP 5.5.0发布 不再支持Windows XP和2003 专访ThinkPHP创始人刘晨:用最简单最快速的方式开发PHP应用 重构:仔细查看,改进代码 加速编码的17款最棒的CSS工具 生于微信:专访疯狂猜图CEO曹晓刚 为什么【select * from Topics [OrderBy 发表时间 desc]】和【...[OrderBy 发表时间 desc]】效果一样? 用SUN WTK2.0开发的程序在Nokia模拟器下可编译不可运行,请教 第一个不头晕者接分 杭州工作难找!!!! 如何修改tomcat 4.1.18的配置,使修改过的Servlet能够及时重新加载! edit的text读取 关于ocx的问题? 怎样将一个文本文件以二进制的形式显示 请大家帮我一下!! 怎么破解Email密码? 国内手机及PDA大都用的是哪个操作系统?Palm? 如何是MEMO中增加一行后光标保持在最后位置? vb.net怎样选定word中表格的某一行? ado+intraweb中如何调用coInitialize? 寻找最恶心的笑话 一些对未来的思索、问题,各位来谈谈 有谁知道用哪款打印机比较好呢? 关于类和接口设计问题 如何能把98 聯入2000 如何做一个后台管理-数据库备份程序 如果我用一个Winsock(index)控件数组。Winsock(1)、Winsock(2)同时调用一个延时函数会出什么问题吗? 已知表中字段ID的值,如何定位到这个字段? 谁知道为什么会出这种错误fatal error C1004: unexpected end of file found 小小问题,也有小小的分,不成敬意。 visio ,rose ,ERwin 他们各自的用途是什么,有什么区别呀? Oracle安装的问题——寻求帮忙!!!! 请问Crystal(水晶)报表如何对TextBox进行动态绑定字段? 如何设定mapx图层的颜色 对汇编的渴望! 谁有Asp做的网站?100分奉上! 都进来看看 vc新兵问函数调用菜鸟问题 紧急求救!!!! 谁有delphi关于ado编程 的资料啊(要详细一点的) TreeView的问题,很实在的问题。 关于在PB上实现错误事件处理!!! 关于组件的停靠 用VB.NET连接数据库老是连不了,快精神分裂了,救命啊! 关于SendMessage(高分相送,紧急) 急!!!高手进! 在查找结果中如果某一字段的值相等,只取出其中一条的问题! squid的安装问题???????????????????? SQL语句问题? 冒昧求救,光驱不能使用,不能boot 我的主机总收到外面发的广告信息? 高分求助急!!! 见鬼了,我添加一个TServerSocket控件,然后编译出现:Declaration terminate incorrectly 有谁知道用哪款打印机比较好呢? 按钮BitBtn1上有图片,在图片上写字的问题。(在先给分!) cystal reports 8.5 english显示繁体问题,急,等待 Unix下用什么源代码检测工具比较好? COS 165º=?求过程,结果也行 何以解忧 唯有杜康 作文 "赤橙黄绿青蓝紫,"的下半句是什么 cos-165°怎么求?注意是负的 “何以解忧,唯有杜康”的作者是: 高二化学复习课 为什么cos(-α-π)=-cosα?求具体的解题过程 四选一:长期大量饮酒对人体的哪个脏器损害最严重?A、心脏B、肝脏C、肾脏D、脑 420斤40度的水温度下降到35度的时候能使3000斤30度的水提高多少度? 热水为什么会让东西变软?马上要用! 长期大量饮酒对身体哪些脏器有损害?容易得什么病? 如何提高3000米速度三千米已经练了很久了,最近运动会,可是这几天跑3200成绩总是在14分左右,怎么提高速度啊,提供点给力的方法啊啊啊啊~ 为什么植物遇热会变软?是这样的,我看老妈做饭的时候韭菜在锅里翻炒了一会,就软塌塌的了,求各位大神告知小妹这到底是怎么一回事? 铝合金的Hemlok结构型抽芯铆钉有什么特点? 查找诗句例子:一个老人与一个小伙子比赛诗文,老人赢了!请写出有关年老却不输年轻的诗句或知识渊博的诗句 读了文言文《孔子家语》 用一句话概括你的感想《孔子家语·六本》君子慎其处 孔子曰:“吾死之后,则商也日益,赐也日损.”曾子曰:“何谓也?”子曰:“商也好与贤已者处,赐也好说 一瓶煤气多少钱?带瓶子一起买的 "所以兴怀,其致一也" 的“所以”怎么解释?《兰亭集序》中的 弱电解质为什么在离子反应中不可拆,它不是也有部分电离吗难道它所电离出的那少部分离子就忽略不计了? 甲基丙烷只有一种情况吧?有 2-甲基丙烷 那个2不写行吗? 所以兴怀, 细胞的失水与吸水可以用扩散作用解释吗? 2-甲基丙烷中的“2-”是什么意思? 从兰亭集序中找出两句话来说明“虽世殊事异,所以兴怀,其致一也” 等物质的量浓度等体积的碳酸钾、硫酸钾、氯化氢混合后、PH为什么小于7 怎样确定风向 2 甲基丙烷的二溴代物有几种?三个甲基是不是都一样 鉴别1甲基2溴乙烷,1,1二甲基2溴乙烷,1溴丙烷 用化学方法鉴别,详细点 某地风向如何确定 参与身体全部物质交换的是()参与身体全部物质交换的是() A.体循环B.血液循环另一种为什么不是? 请问氯化亚铁和硫酸铜为什么不发生氧化还原反应?如题…… 文言文 吊者言孙叔敖为楚令伊,一国史民皆来贺.有一老父,衣粗衣,冠白冠,后来吊.孙叔敖正衣冠而出见之,谓老父曰:“楚王不知臣不肖,使臣受史民之垢,人皆来贺,子独来吊,岂有说乎?”父曰: 女孩喝酒对身体有什么严重的伤害 燎麻照读阅读答案1、解释下列字(“”)“及”觉复读( ) “咸”见申擢( ) “俱”奔江南( ) 必往“祈”借( )2、用自己的话说说刘俊是怎样刻苦读书的.3、“悬梁刺股”“焚 爸爸问他在干什么文言文怎么说主要是在干什么怎么说 2,2-二甲基丙烷和2-甲基丙烷熔沸点问题!当C数相同时,比较支链(或对称性),越多,熔沸点越小.答案1大于2,但我觉得1的支链更多啊,( CH3-C(CH3)2-CH3)也更对称,为什么答案是2更小? 阳光的强弱与物体吸收热有怎样的关系? 溶质与溶剂分别是什么 赤橙黄绿青蓝紫怎么样 阳光的强弱与物体吸收热有什么关系? t℃时,向100g质量分数为20%的氢氧化钠溶液中加入等质量的硫酸溶液,恰好完全反应,并测得反应后溶液的P等于7,然后蒸发掉39.5g水,再冷却到t℃,恰好成为饱和溶液,求:t℃时生成物的溶解度 家庭用电和煤气那样划算?现在煤气家庭用大瓶的要一百多一瓶,电也要1块钱一度,平时就是洗澡烧水和煮吃的,用煤气划算还是用电划算?我说的是普遍情况下,你是怎么计算的? 物体在吸收阳光的同时是否也吸收热?证据是什么? 用丙烯颜料怎么画出海边岩石的颜色最近在做场景 想在石膏做的岩石上面画出海边岩石上的颜色 来体现出海边的场景.要怎么才能画出海边岩石的颜色 用电还是用煤气实惠?我租房那里,电费1.5元一度,煤气大罐的130元一罐,请问,煮菜做饭烧水用电实惠还是用煤气实惠? 如果物体热胀冷缩,为什么太阳那么热,却不会变大,充斥整个天空呢?为什么冷寂的悲伤,却占据了世界呢. 动物的古文有多少要多少, 文言文工作中的工是什么意思? 解释为主持,管理的文言实词 文言文古文 吴老师用72厘米的铁丝做开一个长方形的教具,长20厘米,宽多少厘米 文言文矛与盾这个文言文的起因是什么?发展是什么?结果是什么? 铆钉孔一般多大?单位mm~ 最新中国十大油漆排名榜 有什么书值得看的,关于管理,哲理,或古文,还有观念的 铆钉的选择 大小长度 根据什么来的?应如何选择?比如什么时候选择M4 M6的?还有他的长度? 赤橙黄绿青蓝紫,后面一句是什么 若cos(a-15°)=-1/3则cos(165°+a)=? 镁铝铁混合粉末24克,与足量的盐酸反应,得到的气体体积不可能为A.9.6升B.11.2 升C.22.4升D.29 升 {2sin2a\(1+cos2a)}*(cos^a/cos2a)= 储蓄过少不敢言退 不少美国中产阶级称沙特王室称将疏远美国 美国沙特关系或1亿美国人不工作 劳动力参与率创35巴基斯坦总理访美“提携”经济合作 签英国央行维持现行货币政策 看好经济走美知名私立大学拒受贫困学生 “因财施铁路总公司:火车退票找零不再四舍五入报告称朝鲜核试验场挖新坑道 短期内不南京大学两位院士候选人就论文是否造假北京今日将对“停车超3分钟须熄火”入慈溪夫妇8万元叫女儿代存 女儿身亡后18岁小姨子和姐夫好上了 以死要挟非慈溪两岁女童掉进大锅 全身严重烫伤送男子宁波路上擦肩而过时摸女孩胸 被行宁波出台国内首个网购争议处理办法非洲牛郎门谣言案落定 涉事网站被判侵俄印蒙三国总理同日访华非偶然 政治意同济大学开启中美共建全科医学系计划南京大学两位院士候选人就论文是否造假无业男子为供养情妇和私生子 诈骗父母各省区市通报违反八项规定典型 多涉违图解新闻:劳教制度施行近60年将退出甘肃省首期民办幼儿园举办者、园长专题泰国一男子被“托梦” 挖出47厘米高港媒曝王菲暗探谢霆锋 女方巨款买楼定澳调查:女性当临时工超过5年 有35世界杯32强全出炉 盘点无缘世界杯1深圳人社局就最低工资标准向公众征求意四川文化事业“软提升”带动“硬投入”泰国男子身高257厘米 将打破吉尼斯韩剧《继承者们》人气十足 收视率突破《扫毒》媒体试片获赞成都再添一座新影陕西蒲城烟花爆炸事故致2死5伤3人失孙俪自曝将缺席艾美奖 网友:小主不会综述:澳大利亚银行来华“淘金”步伐加日本媒体人在东京集会反对“特定秘密保专家谈官员情况报告制度:涉及范围不仅马刺痛斩绿军取8连胜 国王背靠背双杀评论员文章:全力确保改革举措落到实处官方:北京用车成本可能会提高 请做好坚实的脚步 铿锵的足音噶尔县“六到位”促“双联户”发挥作用
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘