全部产品
云市场

PTS + ARMS 典型应用

更新时间:2019-01-31 20:17:44

本文通过介绍 PTS 与 ARMS 产品组合的典型应用场景,帮助您了解 PTS 与 ARMS 组合在性能测试方面定位问题和剖析问题的能力。

背景介绍

服务端的性能测试,特别是业务性能测试,目的主要是性能容量评估、性能瓶颈诊断、应用错误诊断,甚至是验证高可用的能力,从而通过针对性的优化达到降低成本、提升用户体验的目的。而施压侧的监控以及服务端的基础监控主要用于发现问题和做初步定位,当需要进一步定位和剖析问题时会显得有点捉襟见肘。

因此,PTS 通过集成 ARMS 监控的能力来提升这方面的能力,通过将关键的服务端性能指标整合到压测整体监控中,达到更快和更便捷地识别问题的目的。

产品组合

  • 性能测试 PTS(Performance Testing Service)

    简单直接的云化性能测试工具,孵化自阿里全链路压测平台。互联网化的交互,适合更多的用户,轻松模拟大量用户访问业务的场景,所需资源随时发起,免去搭建和维护成本,高效、低成本、精准衡量业务能力。近期也发布了ARMS监控集成的功能。

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

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

    pts+arms

适用行业

PTS + ARMS 组成的压测监控方案,除了在阿里内部淘宝和天猫等电商领域有着大量实践以外,截止目前为止在各大行业都有着大量的案例实践。其覆盖行业包括:电子商务、互联网金融、游戏行业、新媒体行业和其他大型政央企行业案例。覆盖场景包括新版本性能基线测试、大促场景测试、线上容量规划等。

pts+arms场景

典型场景介绍

以下对各个常用场景进行介绍。

性能容量评估

  • 诉求

    以某知名在线教育平台为例,希望以最小的成本应对常态化的选课高峰,保证峰值情况下的用户体验不能下降。

  • 分析

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

    通过 PTS + 集成云监控和 ARMS 监控的一站式服务,不仅可以有效判断特定配置系统下的系统性能容量,同时能有效判断出现性能瓶颈时的配置短板,如系统性能、数据库瓶颈、代码问题等,从而为最有效的优化性能容量提供有效基础数据。

  • 容量评估 3 步骤

  1. 使用 PTS 快速构建高仿真业务压测。

    容量评估1

  2. 通过 PTS 控制台一站式观察压测发起侧(客户侧)及服务侧(云监控)的端到端全监控,了解高压下的业务表现和各核心系统的性能水位情况。

    容量评估2

  3. 再通过 ARMS 集成快速找到应用瓶颈点,列出接口快照,结合系统性能诊断慢快照具体耗时原因,如系统性能、慢SQL或其他代码问题。

    容量评估3

性能瓶颈诊断

除了调整容量配比以外,通过探测和识别系统瓶颈点,并进行针对性优化进而提升站点性能的方式可以进一步提升同样机器数量情况下的整体容量水位。

  • 诉求

    以在线教育平台上通过浏览器登录选课为例,最常见的一个操作流程如下。通过压测,识别到系统中的瓶颈。

    示例流程

  • 分析

    以上流程是有严格的先后顺序的,是一个事务,在 PTS 中就是一个串联链路。借助 PTS 对登录 Cookie 的友好支持,整个链路都可以通过 PTS 简单配置出对应的压力测试流量,并通过 ARMS 进行监控,从而观察分析性能瓶颈。

    通过 PTS + ARMS 不仅可以有效分析出现性能瓶颈时的,还能通过 PTS 发现接口调用性能瓶颈拐点,并一键跳转到 ARMS中通过具体线程剖析发现具体代码栈内的性能瓶颈拐点,从而为优化代码性能提供代码栈级别的证据。

  • 性能瓶颈诊断 3 步骤

  1. 使用 PTS 快速构建压测并一站式观察相关应用的接口调用耗时,寻找性能瓶颈点。

    性能瓶颈诊断

  2. 使用 ARMS 观察应用对应接口的耗时,并找到对应的慢接口调用的线程剖析。

    性能瓶颈诊断2

  3. 通过线程剖析找到对应接口的线程快照,分析性能瓶颈。

    性能瓶颈诊断3

应用错误诊断

除了容量评估、性能瓶颈诊断以外,如何在压测场景下有效进行错误诊断也是企业级互联网应用正式上线前的一大场景。这类错误虽然一般不会直接影响调用耗时从而造成性能瓶颈,但是仍然会由于业务错误引发糟糕的用户体验。

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

  • 超时错误 (timeout):当后端服务来不及响应时,可能会在客户端造成 timeout 错误。
  • 熔断错误:该类错误最主要被各类熔断组件触发 (如 sentinal),保护后端应用性能。
  • 其他系统组件引起的错误:典型的如性能超载引起的 IOException 等。

通过 PTS + ARMS 可以在压力增加时,有效发现应用系统因压力过大引起的各类错误(如上所述)。通过 PTS 的施压侧监控和多维度监控,不仅可以有效发现业务接口错误,还可以通过 ARMS 集成关联到具体的错误异常详情,定位到具体错误抛出的详细代码,从而指数级提高压测场景下的接口错误诊断效率。

错误接口诊断 3 步骤

  1. 使用 PTS 观察压测增加时是否发生业务异常/错误。

    错误接口诊断1

  2. 使用 ARMS 观察对应应用的总体错误调用,判断问题点。

    错误接口诊断2

  3. 打开错误的异常详情,通过异常的快照详情判断分析错误的根本原因。

    错误接口诊断3

快速接入