当前位置:首页 > 国内

全链路压测 全链路压测核心技术解析

范文吧
发表于2022-02-18 11:10:18 归属于国内 本文已影响 我要投稿 手机版

有价值的性能测试需要满足什么

1.性能测试和性能分析应该有明确的数据来证明调优效果。

性能测试人员/团队应该能够向操作和维护人员提供性能测试报告+配置文档+风险描述。

2.性能测试和性能分析的价值应该体现在有效的成本节约上。

它可以有效地测量和调整,并可以直接反馈到成本数据中。

性能测试在软件生命周期中的地位

什么是全链路压力测量

根据实际生产业务场景和系统环境,进行压力测试通过模拟海量的用户请求和数据进行整个业务链的优化,并不断优化。

全链路电压测试中使用或解决的问题

全链路压力测试主要应用于互联网电商领域,如淘宝、JD.COM、有赞、饿了么等。,随着越来越复杂的业务场景、海量的业务数据、越来越多的集成系统和系统集群。因此,需要在实际业务场景下测试整个业务系统链的承载能力、可用性和服务能力的瓶颈,预测服务压力和最大流量限制,带出系统服务的最大价值。

全链路压力测量的实施过程及存在的问题

1.商业模式分析

首先分析核心业务和非核心业务,得到峰值流量针对哪些业务场景和模块,然后定位相关系统或服务节点,从而优化系统,更快发现性能瓶颈。这部分工作一般由系统架构师和产品经理定位,然后总压测量负责人协调人员和资源;

2.协调压力测量所需的资源

在整个环节压力测试过程中,难度最大的工作不是系统压力测试执行。),但最难的工作是压力测试资源的协调。业务越复杂,涉及的相关系统越多,涉及的人员和部门越多。各部门的技术人员、产品经理、系统资源、架构师等协同资源难以调动。上级老板有必要调动并授予调动首席压力测试员的权利。

3.压力测量环境和压力测量数据

一般分为三种类型:一是单一测试环境,按比例缩小构建测试环境和测试数据脱敏生产;二是模拟生产测试环境,按照相同比例搭建测试环境和测试数据脱敏生产;第三:直接利用生产环境进行试压;

第一类:压力测试风险最低,发现性能瓶颈偏差大,漏测较多;

第二类:试压风险低,浪费服务资源成本高,存在一定偏差;

第三类:压力测试风险大、真实可信,容易影响实际业务,业绩瓶颈最容易确认;

压力测量数据的几个注意事项:

1.数据的真实性和可用性:

脱敏后的真实生产数据可以作为基础数据,然后在基础数据的基础上,通过分析历史数据的增长趋势来估计可能的数据量;

2.数据隔离

在基于生产环境的全链路压力测试中,必须考虑不能产生脏数据,以免影响生产和用户体验。

因此;数据准备期间需要数据脱敏;并且为了避免脏数据写入;可以考虑隔离压力测量数据、落入阴影库和模拟对象等措施,以防止数据污染。

出色的数据隔离实现

1)代理访问代理隔离

鉴于服务提供商和数据存储服务之间现有的Proxy代理,Proxy层可以直接升级,存储用户完全不知情,无侵入性。下面是MySQL的一个例子,用来说明Proxy访问代理对压力测试数据的隔离方案;

弹性搜索和千伏支持代理访问的压力测试

2)客户端SDK隔离

压力测量工具的选择

整个链路压缩测试处理用户请求的巨大影响,因此分布式压缩测试可以用来模拟用户请求。目前可以提供分布式压缩测试方法的开源工具有很多,比如jmeter、loadrunner、Ngrinder、蝗虫等。

可以基于这些压力测试工具进行二次开发。控制机负责请求分发,代理机进行压力测试,然后将测试结果上传到控制机。

考虑到当压力测量较大时,返回测试结果会对代理本身造成一定的资源占用,可以考虑异步上传甚至事务补偿机制。

也有大公司会开发自己的全链路压力测量自动化平台,比如阿里的PTS

系统容量规划

在系统容量规划阶段,首先要对单个接口和单个服务进行基准测试,调整配置参数并获取基准,然后部署分布式集群,通过nginx进行负载均衡。

至于扩展,要考虑服务扩展和DB资源扩展,以及服务扩展带来的递减效应。

对于流量影响较大的,可以考虑队列等待、容器锁定、长连接回调、事务降级等。

测试集群部署

能做全链路压力测试的业务系统基本都是分布式系统架构,服务集群部署和负载均衡是需要实现和考虑的技术点。

需要解决的问题是:

、服务之间的沟通

有两种通用的通信模式:同步和异步。

同步呼叫:

REST

RPC

异步调用:

同步调用是一致的,但是应该考虑性能和失败的事务。

异步调用可以减少服务之间的耦合,提高性能体验,但是一致性需要解决。

、负载均衡问题

有必要将大流量影响平均分配给集群中的每台机器。目前优秀的负载均衡服务器是nginx,但是nginx的部署似乎存在一些问题。我们公司以前遇到过订单重复的问题。

③容灾能力

有一点需要保证的是,当某一站或部分业务发生故障时,业务能够及时转发,整个系统链路的业务不会在连锁反应下挂掉

数据监控

压力测量工具的监控功能,其他监控工具如Nmon、Zabbix、Zipkin、PinPoint、携程开源全链路监控工具CAT。

每个系统的cpu、内存和磁盘io都是在系统级监控的,每个业务节点的时间消耗也是监控的。一方面在业务层面监控压力测试事务的性能,另一方面在系统层面监控,这样我们可以先从业务层面发现性能瓶颈,然后在系统层面单独分析各个系统的瓶颈,最终找到优化方案。

压力测量的执行

压力测量分析

压力测量的整个优化过程是一个不断优化、不断改进的过程。只有通过长期的逐步改进,才能使系统的稳定性和性能得到质的提高。

学习安排!

如果你不想错过,就把我们设为星星吧!

第二步:点击右上角的“…”

第三步:点击“设为星标”

转载自:http://navo.top/JRfEvq

返回国内列表
随机推荐