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

性能测试PTS(Performance Testing Service)

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

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

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

适用行业

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

典型应用场景

  • 评估性能容量

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

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

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

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

  • 诊断性能瓶颈

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

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

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

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

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

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

  • 诊断应用错误

诊断应用错误是企业级互联网应用正式上线前的另一大场景。这类错误虽然一般不会直接影响调用耗时从而造成性能瓶颈,但是仍然会由于业务错误引发糟糕的用户体验。

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

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

通过PTS + ARMS的经典组合,可以在压力增加时,有效发现以上的各类错误。

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

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

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

阿里云双十一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/

原文链接
本文为云栖社区原创内容,未经允许不得转载。

PTS + ARMS打造性能和应用诊断利器相关推荐

  1. 解析网络诊断利器SreCli-Net

    简介:网络诊断利器SreCli-Net 1.背景 SRE运维团队致力于通过自动化来提高运维的工作生产效率,推动向智能化运维方向迭代转变,解决传统运维的痛点.传统运维虽具有完整的运维体系,但运维方式各异 ...

  2. 一篇13年前的采访|庚顿首席科学家孙宝元:从数据融合起步,瞄准创造价值,打造助力智能化生产的利器

    编者按|这篇文章是发表于2009年的旧文,当时中国电力企业管理杂志信息化版主编艾小洋女士(现任北京庚顿数据科技有限公司副总经理兼市场总监)采访了时任北京庚顿数据科技有限公司总经理的孙宝元先生(现任北京 ...

  3. ali arthas 火焰图_带你上手阿里开源的 Java 诊断利器:Arthas

    本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>[1]系列,今天给大家带来一款阿里开源的 Java 诊断利器 ...

  4. Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

    2019独角兽企业重金招聘Python工程师标准>>> 背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No cred ...

  5. java为什么打不开jar_带你上手阿里开源的 Java 诊断利器:Arthas

    本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>[1]系列,今天给大家带来一款阿里开源的 Java 诊断利器 ...

  6. 超全整理 | 嵌入式Linux 性能工具和诊断思路

    作为程序员,和 Linux 打交道,在服务器上分析系统性能情况,我觉得是每一个后端工程师都无法避开的事情. 无论你是开发还是运维,可能都经历过这样的场景: 流量高峰期,服务器 CPU 使用率过高报警, ...

  7. idea 项目jar反编译java_带你上手阿里开源的 Java 诊断利器:Arthas

    本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款阿里开源的 Java 诊断利器 Art ...

  8. SuperSpider——打造功能强大的爬虫利器

    SuperSpider--打造功能强大的爬虫利器 博文作者:加菲 发布日期:2013-12-11 阅读次数:4506 博文内容: 1.爬虫的介绍 图1-1  爬虫(spider) 网络爬虫(web s ...

  9. mPaaS:全新移动开发平台,只为打造性能更优越的App

    简介: 基于移动开发现状与技术演进预判,提供移动开发强力解决方案,洞察 mPaaS 如何帮助企业有效降低技术门槛,减少研发成本,搭建更稳定.更流畅的移动 App. mPaaS 是源自于支付宝的移动开发 ...

最新文章

  1. 高可用 Redis 服务架构分析与搭建
  2. shell脚本报错:[: =: unary operator expected
  3. HTML元素水平居中和垂直居中
  4. 常用的设计模式——观察者设计模式?和发布者-订阅者设计模式的区别
  5. CentOS6.7安装scala2.11.7
  6. (七)Vue 项目规范
  7. python系统学习:函数积累(持续更新)
  8. jzoj1267-路障【最短路,SPFA】
  9. 面试必考的网络协议相关题目应该如何回答
  10. 三数之和(Leetcode第15题)
  11. Go工程化 - 手摸手带你理解依赖注入
  12. Android AsyncTask源代码浅析
  13. CS224N笔记——Word Window分类与神经网络
  14. 常见网络协议端口号整理
  15. MAC PHP集成环境安装MAMP
  16. 计算机术语中bit的中文含义是,在计算机术语中bit的中文含义是
  17. excel删除无尽空白行_Word技巧:快速删除Word文档中的空行
  18. 相关性评估:皮尔逊相关系数,R2
  19. 阿里云CDN是什么?阿里云CDN配置与购买优惠教程
  20. 获取文件夹下的文件,包含子文件夹并复制文件

热门文章

  1. java xca碗组口径,公路车常见杂音检查清单和解决方法(图文)
  2. java计算器 运算符优先级_跪求大神帮忙,怎样在java 计算器中实现,四则运算优先级;...
  3. lrange是取出所有值并移除么_部落冲突:兵营容量提升,移除超级部队、英雄防御状态冷却时间...
  4. extjs 月份选择控件_ExtJs日期控件案例(可控制时间的选择) | 学步园
  5. mysql update column_MySQL8.0 新特性:Partial Update of LOB Column
  6. 施一公直播首秀来了!解答读博困惑,鼓励学生勇敢申请西湖大学
  7. 95后女孩成最年轻“航天人”,团队里女孩占一半,老一辈退休年轻人挑大梁啦...
  8. 8位两院院士、20位长江、杰青……这个学院厉害了!
  9. 15 位健在的牛叉程序员,你知道哪几位?
  10. 蔡骏:17年前,我也只是个做着无聊工作的小青年