经典组合 | PTS + ARMS打造性能和应用诊断利器

服务端的性能测试,尤为是业务性能测试,是用来评估性能容量、诊断性能瓶颈和应用错误,或是验证高可用的能力,以此达到下降成本、提高用户体验的目的。可是,当须要有进一步的定位和刨析时,这类性能测试就会显得有点捉襟见肘。本文将介绍PTS + ARMS的经典组合,在性能容量评估、性能瓶颈诊断和应用错误诊断方面的实践方案。前端

性能测试PTS(Performance Testing Service)

脱胎于阿里全链路压测平台,是简单、直接的云化性能测试工具,可帮助用户轻松模拟海量访问的真实业务场景,支持所需资源随时发起,免去搭建和维护成本。数据库

业务实时监控服务ARMS (Application Real-Time Monitoring Service)

是一款APM类的全链路(Tracing)监控产品。用户可基于ARMS的前端、应用和自定义监控,快速构建实时的业务监控能力。后端

 

image.png | left | 380x242

适用行业

PTS + ARMS 组成的经典压测监控方案,不只已服务于淘宝、天猫等阿里巴巴集团内部用户,也正应用于其余多个行业,包括电子商务、互联网金融、游戏、新媒体、政府及大型央企等,支持新版本性能基线测试、大促场景测试和线上容量规划等场景。浏览器

 

image.png | left | 355x246

典型应用场景

  • 评估性能容量

以某知名在线教育平台为例,用户但愿以最小的成本应对常态化的选课高峰,同时,在流量峰值的状况下,用户体验不能降低。服务器

根据木桶原理,容量最小的系统也就是木桶最短的板决定了站点的能力。用户须要作的是识别短板,经过调整长短板之间的机器配比达到拉平系统水位的目的,那么即便是一样数量的机器也能够提供更大的业务吞吐量,甚至不用额外扩容。cookie

经过PTS集成云监控和ARMS监控,不只能够准确判断特定配置下的系统性能容量瓶颈,同时还能定位性能基线的配置短板,如系统性能、数据库瓶颈、代码问题等。性能容量评估分为如下3个步骤:运维

  1. 使用PTS快速构建高仿真业务压测;
  2. 经过PTS控制台一站式观察压测发起侧(客户侧)及服务侧(云监控)的端到端全监控,了解高压下的业务表现和各核心系统的性能水位状况;
  3. 再经过ARMS集成,快速找到应用瓶颈点,列出接口快照,结合系统性能诊断慢快照具体耗时缘由,如系统性能,慢SQL,或其余代码问题。

image.png | left | 827x457

  • 诊断性能瓶颈

除了调整容量配比,PTS + ARMS还能够经过探测和识别系统瓶颈点,以提升站点性能的方式,进一步提高一样机器数量状况下的总体容量水位。工具

以在线教育平台上经过浏览器登陆为例,最多见的一个操做流程是:登陆 -> 根据用户的属性信息列出可选的课程列表 -> 用户经过查询条件进行准确的查询或者筛选 -> 选中最终的课程进行提交。性能

这个流程,做为一个事务,是有严格的前后顺序的。在PTS中就是一个串联链路。借助PTS对cookie的友好支持,整个链路均可以经过PTS配置出对应的压力测试流量,并借助ARMS进行监控,从而观察、分析性能瓶颈。测试

此外,用户还能够经过PTS发现接口调用性能瓶颈拐点,一键跳转到ARMS中,并基于具体线程刨息,发现具体代码栈内的性能瓶颈拐点,从而为优化代码性能,提供代码栈级别的证据。

性能瓶颈诊断分为如下3个步骤:

  1. 使用PTS快速构建压测并一站式观察相关应用的接口调用耗时,寻找性能瓶颈点;
  2. 使用ARMS观察对应应用的接口耗时,并找到对应的慢接口调用的线程进行刨析;
  3. 经过线程刨析找到对应接口的线程快照,分析性能瓶颈。

image.png | left | 827x411

  • 诊断应用错误

诊断应用错误是企业级互联网应用正式上线前的另外一大场景。这类错误虽然通常不会直接影响调用耗时从而形成性能瓶颈,可是仍然会因为业务错误引起糟糕的用户体验。

应用在基线性能下除了耗时之外,一般还可能被返回各种调用错误,典型的有:

  1. 超时错误(timeout):当后端服务来不及响应时,可能会在客户端形成timeout 错误;
  2. 熔断错误:该类错误主要是被各种熔断组件触发(如Sentinal), 保护后端应用性能;
  3. 其余系统组件引发的错误:如性能超载引发的IOException等。

经过PTS + ARMS的经典组合,能够在压力增长时,有效发现以上的各种错误。

此外,基于PTS的施压侧监控和多维度监控特性,还能够经过ARMS集成关联到具体的错误异常详情,定位到具体错误抛出的详细代码,从而以指数级别提升压测场景下的接口错误诊断效率,错误接口诊断分为如下3个步骤:

  1. 使用PTS,观察压测增长时是否发生业务异常/错误;
  2. 使用ARMS,观察对应应用的整体错误调用,判断问题点。
  3. 打开错误的异常详情,经过异常的快照详情判断根系错误根因。

image.png | left | 827x417

可见,PTS经过集成ARMS的监控能力,可将关键的服务端性能指标整合到压测的总体监控中,以达到更快速、更便捷地识别问题的目的,下降用户的运维负担。

http://click.aliyun.com/m/1000020293/

双十一广告:阿里云双十一1折拼团活动:已满6人,都是最低折扣了
【满6人】1核2G云服务器99.5元一年298.5元三年 2核4G云服务器545元一年 1227元三年
【满6人】1核1G MySQL数据库 119.5元一年
【满6人】3000条国内短信包 60元每6月
参团地址:http://click.aliyun.com/m/1000020293/

做者: 中间件小哥
原文连接 本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索