真实性能测试案例之性能分析与报告

nanaheidebk nanaheidebk     2023-01-27     299

关键词:

今天主要跟大家分享一个曾经所做的真实性能测试的案例,主要为其中性能测试分析报告过程部分,希望能对你以后怎么做性能分析和报告有所帮助。这个案例的测试目的为:在线考试为“XX平台”中的一个重要模块,根据目前业务的需要,需要测试在线考试能否支持100的并发量。

一、场景描述

采取逐步增加用户数(每10分钟增加用户数20人)对在线考试进行并发操作,达到100人为止;当并发数达到100后则继续运行一段时间(30分钟)。

二、测试环境配置

1、测试服务器配置

技术分享图片
经前面多轮配置测试及计数器观察分析(考试只为系统性能测试的一个块,前面还有做其它模块的性能测试。当然如果单独测考试系统,也应根据测试结果数据去进行参数调优。),最后确认程序、tomcat、JVM及MySQL最佳参数配置如下:2、服务器软件配置

程序参数设置

jdbc.minPoolSize=50

jdbc.maxPoolSize=1500

jdbc.initialPoolSize=50

jdbc.maxIdleTime=60

tomcat server.xml参数配配置

 

maxThreads="1000" minSpareThreads="25" maxSpareThreads="75"  maxIdleTime="60000" />

 

maxKeepAliveRequests="1" redirectPort="443"  />

JVM参数配置:

-XX:PermSize=64M

-XX:MaxPermSize=128m

-Xms512m

-Xmx1024m

MYSQL参数配置:

max_connections=1500

thread_cache_size=128

back_log=200

三、测试结果分析

1、当并发数为60后,发生500服务器错误,通过计数器监控检查为数据库连接数达到最大值1499

1)并发数与服务器出现错误的关系视图

技术分享图片
2)数据库线程连接数与出现错误的关系视图

技术分享图片
通过上面两图表分析:
在并发数逐步加大过程中发生瓶颈,瓶颈原因为数据库线程连接数达到饱和值1499。

2、调整MYSQL的max_connections=11500后进行测试

调整参数后仍发现mysql的线程数达到1499后就不能继续上升了。确认原因:windows32位系统,一个进程中可用的内存空间只有2G,而默认情况下一个线程的栈要预留1M的内存空间,所以理论上一个进程中最多可以开2048个线程,但是内存不可能完全拿来作线程的栈,所以实际数目要比这个值要小。所以1499则为该测试环境的线程数峰值。

3、根据前面压力结果,调整并发数为40进行测试

发现当提交试卷数达到1300左右时,数据线程仍然达到1499,最后再次提交试卷发生服务器500错误。都是在发现错误后停止测试(并发40时是一发现500错误现象则停止运行,所以失败数为1),考试流程各事务通过量统计情况如表:

技术分享图片
?根据上表分析:当短时间内(如30分钟),学生考试提交的试卷次数超过1300左右,当其它学生提交试卷时或进行其它与数据库相关操作时,会出现服务器500错误。





基于sparksql之上的检索与排序对比性能测试

谁有相关性能测试报告给一份啊,sparksql到底比hive快多少?之前做过一年的spark研发,之前在阿里与腾讯也做了很久的hive,所以对这方面比较了解。第一:其实快多少除了跟spark与hive本身的技术实现外,也跟机器性能,底层操作... 查看详情

系统性能测试方案

...言1.1编写目的编写本方案的目的是用于指导XXXX系统的性能测试,主要从测试环境、测试工具、测试策略、测试具体执行方法、任务与进度表等事先计划和设计。1.2适用范围XXXX系统性能测试组XXXX系统开发组XXXX系统性能优化组1.3参... 查看详情

系统性能测试实施流程

系统性能测试实施流程   软件性能覆盖面广泛,对一个系统来说包含系统的执行效率、服务器资源使用情况、系统稳定性、安全性、兼容性、可扩展性、可靠性等等,而性能测试就是通过特定的方式对被测试系统按照... 查看详情

浅谈应用性能测试pts

原文链接 我们为什么要进行性能测试?1.评估系统的能力。 当应用上线有大量用户当问的时候,页面的打开速度直接影响用户体验,进而影响用户的留存。了解用户的真实使用体验,对应用做出针对性的性能评估,有效... 查看详情

在小猎犬骨黑上进行浮动与双重性能测试

】在小猎犬骨黑上进行浮动与双重性能测试【英文标题】:floatvsdoubleperformancetestingonbeagleboneblack【发布时间】:2014-08-0715:05:37【问题描述】:我正在对我的BeagleboneBlack进行一些图像处理,并且对在我的算法中使用浮点数与双精度... 查看详情

再谈性能测试之需求调研

之前的博客聊聊性能测试开始前的准备工作,聊了一些关于性能测试开始前要做的准备工作。这篇博客,来谈谈性能测试开始前的需求调研阶段,我们要做什么,关注那些Point。。。 一、基本信息信息类型说明项目名称项目... 查看详情

使用wrk进行性能测试

1wrk介绍wrk是一款现代化的HTTP性能测试工具,即使运行在单核CPU上也能产生显著的压力。它融合了一种多线程设计,并使用了一些可扩展事件通知机制,例如epollandkqueue。一个可选的LuaJIT脚本能产生HTTP请求,响应处理和自定义报... 查看详情

pgtm通用性能测试模型

PTGM通用性能测试模型一、     测试前期准备阶段目标:1.保证系统稳定性; 2.建立合适的测试团队。活动:1.   系统基础功能验证类似于BVT测试,确保被测系统已具备进行性能测试的条件。a.性能... 查看详情

tps从300笔/秒到5500笔/秒的性能测试优化之路

???TPS从300笔/秒到5500笔/秒的性能测试优化之路????????????????????????????????????????????????????????郭柏雅本文案例是我们品课学院在银行系统性能测试第一个案例,由发生至解决,通过对业务逻辑的认知、测试环境的了解、测试脚本的开... 查看详情

《性能测试二三谈》系列

基础篇我第一次真正意义上接触性能测试,应该是从段念老师的《软件性能测试过程详解与案例剖析》这本书开始的。相比于后来市场上的一些性能测试工具书,比如:《零成本实现性能测试-基于ApacheJmeter》、《软件性能测试... 查看详情

meter-连续性能测试-jmeter+ant+jenkins集成-第1部分(代码片段)

目标:创建包含性能测试流程的持续交付管道, 以尽早检测任何与性能相关的问题。 通常,全面的性能测试将在分段/预生产环境中完成,该环境可能与您的生产环境相同。在完成QA功能/回归验证后,将代码推送到分段... 查看详情

云上的移动性能测试平台

...现在,性能决定未来。欢迎大家围观《云上的移动性能测试平台》,了解EMAS性能测试平台的能力与规划。1.功能决定现在,性能决定未来性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前台... 查看详情

功能性能测试

】功能性能测试【英文标题】:performancetestoffunctions【发布时间】:2009-12-3002:38:42【问题描述】:linuxgcc4.4.1C99我想知道测试C程序性能的最佳方法是什么。我已经实现了一些功能。但是,我可以为每个功能使用不同的设计。基本... 查看详情

性能测试--测试流程篇

一、制定目的性能测试是一项严谨的需要各团队协同配合的工作,其中包括产品、开发、运维、网络、DBA、测试等角色。从零开始实施性能测试,而性能测试流程,是最重要的一步。制定性能测试流程指南的目的,是从技术角度... 查看详情

使用loadrunner怎么进行性能测试

参考技术A用loadrunner先截取脚本,把对应的变量进行替换,设置成参数表的形式。然后定义对应的用户数,批量的执行脚本,压力测试对应的时间后,loadrunner会自动的分析出对应的性能。同事你需要在数据库服务器和应用服务器... 查看详情

作业04之《大型网站技术架构:核心原理与案例分析》阅读笔记

   在这一节课上,我们学习了系统质量属性其中的可用性和易用性。那么质量属性是什么呢,质量属性是高于对系统功能(即对系统能力、服务和行为)的基本的要求的。系统质量属性讲重点放在了可用性、可修改性... 查看详情

locust创建性能测试(代码片段)

转:Locust可没有傻瓜式的脚本录制功能,要想用它来做性能测试,必须撸起袖子来写代码。不过。它并不难!编写简单的性能测试脚本创建load_test.py文件,通过Python编写性能测试脚本。fromlocustimportHttpLocust,TaskSet,task#定义用户行... 查看详情

locust创建性能测试(代码片段)

Locust可没有傻瓜式的脚本录制功能,要想用它来做性能测试,必须撸起袖子来写代码。不过。它并不难!编写简单的性能测试脚本创建load_test.py文件,通过Python编写性能测试脚本。fromlocustimportHttpLocust,TaskSet,task#定义用户行为class... 查看详情