全网最全性能测试总结,分析性能测试问题+性能调优方案...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

性能分析和优化一直是技术领域热门的一个话题,无论是三高(高性能、高可用、高稳定),还是CAP(数据一致性、服务可用性、分区容错性),都强调了服务的性能和可用。

那么在工作中,该如何去测试并进行性能优化呢?

常见的性能问题与原因

网络带宽:
网络对性能的影响不言而喻。如果带宽不足,单位时间内的请求过多,就会导致数据包的传输延迟较大。

如果网络不稳定,也会导致RT的曲线抖动较为剧烈,产生毛刺甚至丢包,这个时候P90/P99的数值也可能变大。因此稳定和足够的网络带宽,对系统的性能来说是很重要的。

负载均衡:
现在的SLB层已经优化的足够好,但如果负载均衡出现问题,可能会导致流量分发不均匀,导致部分应用节点流量异常,健康检查不通过从而被踢下线。

甚至服务注册重试失败或者弹性扩容不够及时,还会导致可用的节点承受了较多的请求最终导致雪崩效应。

安全策略:
现在的软件系统,常见的安全防护策略有ddos高防以及WAF,一般都是部署在SLB和流量网关之间或者更上层。

安全防护策略常见的场景有异常检测、输入验证、安全补丁、状态管理以及基于规则和异常的保护功能。

这些安全策略能够有效的保护系统不受到一些恶意的攻击和侵入,但这些策略生效也是需要耗费时间的。

流量网关:
上面提到的几个部分都可以看做是互联网时代的基础通用层,而网关是伴随着微服务和容器化出现的,作为用户流量的系统入口,网关也承担了较多的功能。

比如:日志、身份鉴权、灰度发布、限流熔断、可观测性metrics、应用限流apm tracing

上述的功能,无论是身份鉴权还是可观测性的metrics的实现,都需要耗费一定时间。特别是对于请求的RT比较敏感的业务,对流量网关功能的耗时要求更为严格。

Web应用层:
这几年前后端分离的系统设计越来越多,web层更多的负责页面的渲染展示和部分讨好用户的交互设计。

如何让用户更快的感知到他所感兴趣的东西,这个时候CDN和缓存就派上用场了。

利用CDN和缓存的特性“就近加载”,让用户感知到的性能更快,也是性能优化领域很重要的一点。

APP应用层:
前面讲了web层负责页面渲染展示和友好的交互,那App应用层(即我们常说的后端服务)则更多的负责逻辑计算。逻辑计算是很吃资源的,当然和它的一些参数配置以及技术架构也有较大关联。

常见的影响后端服务性能的因素如下:
硬件资源:如CPU/Memory;
参数配置:如Activethreads/TimeOut;
缓存配置:缓存中的大Key及缓存命中率;
并行计算:请求下游依赖是串行还是并行?
代码逻辑:最经典的例子——for循环无线套娃;
日志处理:特别是异常日志的处理以及生产日志级别;
处理机制:同步还是异步?如果是异步,MQ容量及消费能力如何?

数据存储层:
数据存储层我们通常理解为数据库。数据库层面影响性能的因素应该是最常见也是最多的。

比如:
锁:不合理的锁使用导致的请求等待;
索引:未加索引或索引未生效导致慢SQL;
数据量:表数据量过大导致的读写变慢等问题;
针对业务扩张以及数据量变大的问题,常见的优化策略有分表、数据库垂直拆分、读写分离等;

压测不是发现问题的唯一手段

回到性能定位分析和优化的话题上,关于性能优化,如下三点是必须铭记的。

1、性能优化的目标
在保持和降低系统99%RT的前提下,不断提高系统吞吐量,提高流量高峰时期的服务可用性。

2、性能优化的挑战
日益增长的用户量(带来访问量的提升,大数据量的存储和处理);
越来越多样的业务(业务的不断迭代和发展,会使其复杂性指数提升);
越来越复杂的系统(为了支撑业务迭代发展,系统架构会变得很复杂);

3、性能优化的路径
降低响应时间;
提高系统吞吐量;
提高服务可用性;

PS:三者关系在某些场景下互相矛盾冲突,不可兼得!

基于上述关于性能优化的几点内容,结合我个人的实践经验和看法,性能定位和分析可以分为:
熟悉业务逻辑,了解系统架构;
掌握技术原理,熟知问题定位和分析优化的软件工程方法论;
不断实践踩坑,总结归纳性能验证、定位分析的方法和经验;
熟练使用性能测试、监控追踪、问题分析和优化的各种工具并擅加利用;

性能优化运行的更快更稳定

分层优化:
请求的处理过程要经过多个链路环节,除了优化耗时最长难度和成本较低的环节之外,在每个环节都进行一定优化,则对整体性能的提升有很大帮助。下面是流量高峰时的一些优化或者说应对案例:

数据库:
扩容:DB是有状态服务,计算层便于扩容,将DB节点放到容器中,有需要扩容;
灾备:对于大流量读场景可通过流量切换方式,将部分流量迁移到备份集群分流;
巡检:慢SQL是常见的问题,可通过自动监控和历史数据分析,提供辅助式决策;

应用层(计算层):
限流:控制访问应用的流量在系统承载范围内
在业务请求入口(网关)限流,避免内部互相调用放大流量;
限流是个演进状态,从连接池、IP、指定SQL到更细的层级粒度做限流;
每个调用层都做限流,每个应用先保证自己可用,对其他依赖调用要做到“零信任”;

降级:强依赖通过熔断做紧急处理,弱依赖提前主动降级
主动降级:提前进行风险识别,然后针对性的降级,可降低已知的风险;
紧急降级:假设出现重大的问题,才需要决策是否启用的方案(风险较大);
预案平台:预案平台的目的是留痕,方便后续把限流降级等配置恢复回来;

熔断:熔断下游强依赖的服务
双十一零点的前半小时, 做一个动态推送,把日志关掉;
真正流量来的时候,留一台机器来观察错误和异常的日志;

隔离:核心和非核心业务做隔离

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一次的努力都不会白费,终究会有回报。只要不放弃,坚持到底,你就能看到自己所期待的美好未来。因为奋斗是人生最珍贵的经历,它能让你变得更加坚强、勇敢和有智慧。只有不停地前行,才能走出属于自己的辉煌人生!

每一次的挫折和失败,都是你成长的机会。不要轻易放弃,坚持下去,你会发现自己变得越来越强大,最终实现自己的梦想。

只要你有梦想,就有无限的可能性。不要害怕失败,因为失败不是终点,而是成功的起点。勇往直前,不断尝试,你会发现自己比想象中更强大。坚持不懈,相信自己,你必将创造属于自己的辉煌人生!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/22598.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vs code 配置net 开发环境.并搭配vs相似的解决方案面板

由于在本人在Linux22.04下安装Rider 一直处于卡死系统状态.不得不使用该方式 以下为安装步骤 安装 VS code https://code.visualstudio.com/Download 安装 mono https://www.mono-project.com/download/stable/#download-lin 安装 NET SDK https://learn.microsoft.com/zh…

加拿大鹅Q4营收增长超30%,后续如何拿下更多“信任票”?

羽绒服行业正处在一个大混战的时代。有的品牌依托强势单品出海逆袭;有的品牌通过狂追当下Z世代的喜好,推翻经典设计;也有品牌“放下架子”在工厂忙起了特惠直播。在赛道愈发拥挤的背景下,羽绒服行业正在经历“地位”洗牌。 目前&…

如何在WordPress页面上显示或隐藏小部件?

您想在 WordPress 网站的特定页面上显示或隐藏小部件吗? 默认情况下,当您将小部件添加到您的网站时,它们将显示在所有页面上。但是,有时您可能只想在某些页面上显示选定的小部件可以帮助您更好地自定义您的网站并提供个性化的用户…

有哪些好用的App云测试平台?

一、国内外6种好用app云测平台推荐(章节末附pk图) 1、国内云测平台 1)Testin云测 网址:https://www.testin.cn/ Testin云测平台是一款基于云端的移动应用测试平台,为移动应用开发者和测试人员提供一站式的移动应用质…

让数据背后的那些话创造价值 | 数据增长

从行业背景而言,流量红利逐渐消失,野蛮生长的互联网时代接近尾声。传统的烧钱模式、靠体力投放的形式日渐乏力。但是,企业总是要追求增长的。所以在行业大背景下,依靠技术和数据的力量寻求更科学、更高效的方法达成营销目标&#…

关注 | 蛙色元宇宙,正式成为XRMA联盟成员单位

中国虚拟现实与元宇宙产业峰会,2023年3月22日于杭州圆满结束,在杭州市人民政府、浙江省经济和信息化厅指导,由杭州市经济和信息化局、杭州市西湖区人民政府主办,中国信息通信研究院承办。 蛙色元宇宙作为元宇宙的领先企业之一&…

springboot旅游资源管理系统门票酒店预订系统_b0a6b

Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程。也可以说 Spring Boot 能简化我们之前采用SSM(Spring MVC Spring MyBatis )框架进行开发的过程。config:主要用来存储配置文件&#…

凹函数和凸函数

凹函数英文concave,凸函数英文concave。 在有些参考资料中,凸函数又称为下凹(concave down)函数,凹函数称为上凹(concave up)函数。 凹函数和凸函数根据判定方法的不同,分为以下两类: 一元函…

虚幻商城模型转MetaHuman

一、导入虚幻商城的模型到UE 1.去虚幻商城下载一个人物模型,这里以SchoolGirl为例 2.导入UE,并找到模型,这里是SkeletalMesh 二、启动MetaHuman插件 1.通过Edit->Plugins启用MetaHuman和MetaHumanSDK插件,这里MetaHuman插件是用于创建MetaHuman的,MetaHumanSDK插件…

会声会影2023最新完整版免费下载

会声会影2023操作简单,功能同样强大!会声会影附带上百种特效、滤镜、转场、模板。同时各类专业级视频工具,如调色、遮罩、绿幕抠像、运动追踪、分屏创建器,满足更高标准的视频需求。这款软件上手操作简单易学,就算你在…

C++ 初始模板

模板 void Swap(int* x, int* y) {int tmp *x;*x *y;*y tmp; }void Swap(double* x, double* y) {double tmp *x;*x *y;*y tmp; }void Swap(char* x, char* y) {char tmp *x;*x *y;*y tmp; } 如上述所示,我们在实现函数的时候,有很多函数会像…

第四届“中国法研杯”司法人工智能挑战赛-刑期预测赛道三等奖方案

一、前言 本文将回顾第四届“中国法研杯”司法人工智能挑战赛-刑期预测算法赛道比赛。使用多任务预训练、然后进行微调的形式最终在比赛中取得了三等奖的成绩。 二、任务介绍 主办方在第一届“中国法研杯”比赛上提出了刑期预测任务,本届将针对往届刑期预测准确率…

(学习日记)AD学习 #1

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

Leetcode452. 用最少数量的箭引爆气球

Every day a Leetcode 题目来源:452. 用最少数量的箭引爆气球 解法1:排序 贪心 题解:用最少数量的箭引爆气球 我们首先随机地射出一支箭,再看一看是否能够调整这支箭地射出位置,使得我们可以引爆更多数目的气球。…

既然有了IP地址,为什么还需要MAC地址?两者到底有啥区别,深入分析后终于明白了!

在计算机网络中,IP地址和MAC地址是两个最基本的概念。IP地址在互联网中是用于标识主机的逻辑地址,而MAC地址则是用于标识网卡的物理地址。虽然它们都是用于标识一个设备的地址,但是它们的作用和使用场景是不同的。 IP地址是在网络层&#xff…

logstash同步数据从kafka到es集群

背景:需求是这样的,原始文件是txt文件(每天300个文件),最终想要的结果是每天将txt中的数据加载到es中,开始的想法是通过logstash加载数据到es中,但是对logstash不太熟悉,不知道怎么讲…

基于SpringBoot的生鲜管理系统的设计与实现

背景 困扰交易市场的许多问题当中,生鲜交易管理一定是交易市场不敢忽视的一块。但是管理好生鲜交易又面临很多麻烦需要解决,例如有几个方面:第一,生鲜市场往往人数都比较多,如何保证能够管理到每一个商家,如何在工作琐碎,记录繁多的情况下将生鲜交易的当前情况反应给领导相关部…

柔顺机构学读书笔记1:悬臂梁变形

题目: 如图考虑悬臂梁,材料各向同性,即各个方向上的弹性模量和强度都相同。如果在x方向上作用一个可使最大应力等于屈服强度 S S S的力 F x F_x Fx​时, x x x轴方向的变形为多少,书上给出了答案: 我们来验…

2022级云曦实验室考试(一)pwn

讲真,俺都不知道pwn是啥,等俺搜搜! pwn简介: CTF中的pwn指的是通过通过程序本身的漏洞,编写利用脚本破解程序拿到主机的权限,这就需要对程序进行分析,了解操作系统的特性和相关漏洞&#xff0…

SHELL——流程控制条件判断

1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。 2、判断web服务是否运行 1)、查看进程的方式判断该程序是否运行 2)、通过查看端口的方式判断该程序是否运行&am…