干货 | 应用SQL性能风险识别与预警,携程金融支付AppTrace落地实践

作者简介

 

Sedro,携程资深测试工程师,专注于测试技术探索及测试工具研发。

一、应用性能问题

在我们过往的测试及生产问题的分析中,常常可以发现应用执行数据库操作导致出现性能问题的情况。而这些情况中最常见的原因是SQL执行时,索引未能恰当的使用,例如未建索引、SQL条件没有利用索引、索引失效等。这些问题往往占据了性能问题的60%~80%原因。

为了应用在性能方面能安全上线,通常需要专业的性能测试及分析人员通过冗长的测试过程来进行保障,对测试人员、数据环境、测试时间等多个方面均提出了较高的要求。而组织内部往往缺乏这样的专业人员,同时互联网模式下高速的系统迭代上线也很难为专门的性能测试开展提供充足的时间资源。

为了解决这些问题,我们提出了AppTrace这套系统的设计。期望以简单、自动化、高效的手段达成在测试阶段把应用性能的这60%~80%的问题都解决掉。

二、AppTrace目标

  • 发现应用性能问题中最主要的原因之一:慢SQL

  • 以简便的手段获取应用可能存在的SQL性能问题点

  • 降低测试人员发现慢SQL的技术难度

  • 使应用SQL的性能侦测覆盖率达到近乎100%

  • 侦测分析结果与生产真实情况接近


三、目标实现基本过程

1)功能测试和接口测试时,AppTrace抓取测试执行过程中的所有SQL。通过功能和接口测试实现对应用功能的全量覆盖,使得应用中的SQL几乎都会被抓取到。

2)AppTrace将抓取到的SQL请求到生产mirror库中去获取执行计划,以此获得与生产近似的执行分析结果。

3)对分析结果为疑似存在性能问题的SQL进行告警,由人工确认、优化。

 

四、AppTrace原理及实现


 

4.1 AppTrace结构简介

AppTrace分为三大组件:

  • CPTrace(CtripPaymentTrace)组件:该组件基于BTrace改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值