前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >性能测试的关注点及诊断思路

性能测试的关注点及诊断思路

原创
作者头像
漫谈测试
发布2025-01-17 17:17:16
发布2025-01-17 17:17:16
820
举报
文章被收录于专栏:漫谈测试漫谈测试

做任何事情都要讲究方法策略,性能测试的诊断自然也需要一些常规的方法。就像我们身体不舒服,去医院就诊,大多数医生要依赖化验报告来帮助诊断,性能测试进行诊断时候也需要一些测试报告数据,性能监控的有主机监控,应用的监控,中间件的监控,数据库监控等。

性能优化是为了更好地利用计算机硬件资源,使用更少的硬件资源来提供更好,更多,更优质的服务。

性能诊断是性能优化的前提,性能诊断是一个大课题,不同的架构,不同的应用场景,不同的程序语言,诊断分析的方法大同小异,大致可以分为两类:自底向上和自顶向下。

如下图:

1>自底向上

通过监控硬件(CPU,内存,磁盘,网络等硬件资源)及操作系统的指标来分析性能问题(配置,程序等)。因为用户的请求最终是由计算机硬件设备来完成的。硬件指标反映了资源需求,资源需求导致了性能风险。

2>自顶上下

通过生成负载来观察被测系统性能,例如响应时间,吞吐量,然后从请求为起点,由外及里一层一层地分析,从而找到性能问题所在。

不管是自底向上还是自顶向下,关键点就是生成负载,监控性能指标。与医院里的医生诊断类似,先检查,再开药。一些有丰富经验的医生往往通过患者的外在症状来进行诊断,此时经验就是能力,而且高效;另外一些医生通过验血,测量体温,B超,CT等,进一步检测才能确诊。

有的时候,患者还需要进一步留院观察,多数是因为病情比较复杂,症状和化验结果不能确诊,或者短时间内无法康复,通俗的说还是没有把握,只能进行医疗尝试,这就类似我们分析一些复杂的性能问题,对一些怀疑的部分进行实验性修改,看看是否提高性能,一一排除可疑之处。

随着技术不断迭代,数据在变化,技术也在变化,为了更好的服务用户,系统的框架也在变化。

早期的应用,我们将系统功能集中到一个系统中,使用一个程序包发布,如下图。

后来随着功能的增多,开发复杂度变高,我们开始分前后端开发,开始把大系统拆分为若干个小系统,然后采用负载均衡的方式来增强处理能力,如下图。

如今海量的用户情况下,为了提高性能,方便工程化,增加可靠性,我们把系统拆分的更细,也就是近几年比较流行的微服务,虽然架构在变,但本质不变,不管你用什么结构,最终还是有计算机硬件来处理业务请求,对于导致性能问题的程序的分析还要拆分到单机,在单机上分析软硬件资源的使用情况,如下图所示:

性能测试的关注点

响应时间:衡量系统对用户请求的反应速度,通常以秒为单位。

吞吐量:系统在给定时间内处理的工作量,可以是每秒请求数、事务数或其它业务量度。

并发用户数:系统能同时支持的最大在线用户数量。

资源利用率:CPU、内存、磁盘I/O、网络带宽等硬件资源的使用情况。

稳定性:长时间运行下系统的稳定性和可靠性。

可扩展性:系统在增加硬件资源或优化后能否线性提升性能。

对于性能问题的诊断,以下是一些常见的思路和步骤

分析需求

确认性能目标,例如最大并发用户数、平均响应时间等。

了解系统的预期用户行为模式,如访问高峰时段、典型用户路径等。

设计测试场景

创建模拟真实用户行为的测试脚本。

规划不同级别的负载测试,包括常规负载、峰值负载和破坏性负载测试。

执行测试

使用性能测试工具执行预先设计的测试用例。

监控并记录系统的关键性能指标(KPI)。

数据收集与分析

收集服务器端、客户端以及网络上的性能数据。

对比实际结果与预定的性能目标,识别瓶颈。

诊断与优化

定位性能瓶颈所在,可能涉及代码层面、数据库查询效率、网络配置等方面。

根据分析结果调整系统参数或重构应用逻辑,以提高性能。

重复上述步骤,直到达到满意的性能水平。

报告与文档化

撰写详细的性能测试报告,包括测试环境描述、测试方法、发现的问题及改进建议。

文档化所有相关的性能调优措施和最佳实践。

阅读后若有收获,不吝关注,分享,在看等操作!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档