性能3期疑问

说明:性能3期学院,在学习和项目实践过程中,梳理了以下疑问,希望老师指导,谢谢!

一、场景设计:

——Q1:性能测试方案,如何对中间件进行设计方案,关键点及指标是什么?比如db、redis、kafka等?

—— Q2:一个项目的性能测试场景整体上应该包含哪些,分别如何制定方案、什么准出标准?

—— Q3:单接口场景的定义、目标是咋样的?

—— Q4:混合场景应该如何设置,取单场景的最高值开始、还是为了达到压测目标思路推算开始(可能只是单接口结果的半途开始的)?混合场景的目标和目的是怎样的?稳定性场景呢?

—— Q5:请教一下,压测有7个接口,第一轮是做单个接口的压测,通过逐步增加单接口的并发数,去测试是否达到对应的99时延指标和目标2倍的tps指标。第二轮是做混合场景最多测试。假设a接口在第一轮压测时压到的tps是2000,但是在混合场景时只能到1500,那测试报告写该接口的压测结果的tps,应该写前者还是后者?(假设a接口的目标tps的值是1800,那算不算压测结果达标?)

—— Q6:对于查询的读接口,需要考虑用多个用户账号参数化去测试吗?1个用户和多个用户区别跑的结果有哪些差异呢?大概要多少量的用户合适?如何评估

—— Q7:场景设计时,如何把握好并发用户数和循环次数的关系?比如说db有用户锁的场景时,(结合以上问题一起理解)

—— Q8:为什么jmeter线程数可以理解为用户数?可以解释一下原理吗?如果10个线程都用同一个user账号的话也能理解10个用户并发吗?

—— Q9:【复杂业务流程】实际跑这个业务场景的压测的时候,循环次数设置比1大、有什么意义?同一个用户循环5次、同样执行5次注册和登录,跟500个线程、循环一次有什么区别?这种在压测中有通用的建议吗?

—— Q10:场景分析,如何分析?仅分析接口的比例,还是会先分析有多少种场景、每种都是怎样分析的、有没有一些

几个场景交集的api如何处理?

—— Q11:混合场景是如何分析比例?

—— Q12:设置1000个人的秒杀场景,是要1000个并发用户数吗?还是tps?如果测试的并发用户数没有达到1000,那么如何保证live上有1000个人并发时的性能表现是一样的?有没有可能受其他因素影响而不一样?

—— Q13:线程数可以理解为并发用户数,那假如线程数为10、循环次数为1、但是使用的登陆token都是相同用户的,那还能当作多用户并发吗?跟10个不同的token相比?

—— Q14:老师可以介绍一下当前live上全链路压测用到的一些前沿技术吗?比如流量回放的技术应该如何构建?

—— Q15:要求用loadrunner做2000个‘在线’用户的性能测试,如何分解性能场景指标?

—— Q16:如果要在测试环境中搭建性能测试环境,需要考虑哪些因素,如何根据结果评估live上的性能值?即分析环境间的差异、性能测试环境搭建方便应该如何考虑并评估?可能部署在物理机、docker(比如部署在live上pod的实例数是3,可以再部署一个环境、其他配置相同、实例数为1,根据结果可以线性乘以3倍评估吗?) 现在领导说大家在live上压测做的慢、但是又要比较准确评估线上性能指标的,现在让大家搭建压测环境,不知道要考虑什么点

—— Q17:老师,在live压测做负载场景的压测,我们一般都是逐步增加并发用户数往上跑,但都是跑一次观察一次、下次再进行调整。 这种时候你建议可以使用阶梯场景的插件来设置场景连续跑吗?主要是基于担心线上连续跑多组并发、live监控看不及时怕出问题,有什么好建议吗?

二、性能监控:

—— Q1:实际的监控体系,如何观察是因为客户端瓶颈压不上去导致?比如jmeter来说,是不是观察硬件资源cpu/内存/网络 如果有瓶颈就算?

—— Q2:监控体系和命令的区别,如果有些命令在监控没有,是不是需要在压测的过程中实时使用?但是jmeter是cli跑的,一般跑完才会看结果报告,过程中一般来不及处理/特别涉及多个计数器反复比对监控。如果发现问题的话是会反复再执行场景再一个个命令看吗,感觉这个过程可能比较繁琐?

—— Q3:比如cpu要看使用率和队列,那测试报告一般建议怎么准确的表述?一般看到都是写cpu使用率不超过70%?另外cpu使用率是看机器整体的、还是看进程占用的?进程可以自己设置资源使用的范围吗?
队列的值,一般多少才是高不ok的?

三、诊断调优:

—— Q1:程序启动起来,会去申请一段内存空间,但不会是整个机器的;那么,可能出现内存溢出的时候,机器资源的内存使用率还是比较低的,那怎么判断出来?为什么平时大家看内存使用率是看整个机器的、而不是程序分配的?

—— Q2:有一个live的服务(部署几个实例)、做负载测试、压的最后一次的并发数的时候,有一个节点的内存突然增加了一倍,并且直到现在还在维持着这个水平(但资源远没达到瓶颈)。 分析情况:看了下监控数据,内存使用异常pod,内存占用基本是credit_cl-trans进程,与另外两个pod相比,内存占用多出一倍,但pod的系统环境(同一个容器)、资源配额(cpu、memory limit)都是一样的,另外,pod调度到的宿主型号也是一样的,在资源层面看不出什么原因; 老师有什么好的分析思路吗?后端是go

四、压测工具:

—— Q1:实际工作中,一般什么时候会用到性能测试持续集成?能否举例说明场景?

—— Q2:比如公司内部有grafana的监控、这时候看getway的tps值跟这里的throughput的值会有什么差异?我们应该以jmeter报告的为准、

五、前沿技术:

—— Q:全链路会用到哪些主流技术?流量回放的方案和工具是怎样的,如何运用流量回放到实际测试中、需要什么角色成员参加?

—— Q:性能测试平台方案有没有现成比较好的平台设计方案可以参考?平台建设有什么特别需要注意的时机和点吗?

—— Q:比如支付项目、有很多第三方,一般这种在方案上怎么处理、如何评估端到端的用户指标??有时候第三方不好配合。是不是需要mock、响应时间sleep,要第三方给sla承诺(响应时间和tps的保证)、出了问题如何背锅?

—— Q:老师对于不同性能测试工具的使用,有什么建议?比如jmeter\locust等

3 个赞