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

今天主要跟大家分享一个曾经所做的真实性能测试的案例,主要为其中性能测试分析报告过程部分,希望能对你以后怎么做性能分析和报告有所帮助。这个案例的测试目的为:在线考试为“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错误。

原文地址:https://www.cnblogs.com/nanaheidebk/p/10039819.html

时间: 2024-10-31 10:46:12

真实性能测试案例之性能分析与报告的相关文章

从三个语言(C++,Java,.Net)的几个性能测试案例来看性能优化

随着时间的发展,现在的虚拟机技术越来越成熟了,在有些情况下,Java,.Net等虚拟机密集计算的性能已经和C++相仿,在个别情况下,甚至还要更加优秀.本文详细分析几个性能测试案例,探讨现象背后的原因. 来看两个简单的测试用例.如下图所示,均是循环5000次,操作 len = 1000000 的连续内存,计算执行时间.左侧为test1,右侧为test2. 类似的程序在 .net core 3.0 Preview6下测试. 测试结果对比如下: 我们可以看见,对于test1,C++版本要快很多,对于t

性能测试知多少---性能分析与调优的原理

最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手. 单一个中间件又分web中间件(apache .IIS),应用中间件(tomcat .weblogic .webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功.但调优对于每一项的要求又不仅仅是"知道"或"会使用"这么

【转】一文掌握 Linux 性能分析之网络篇(续)

在上篇网络篇中,我们已经介绍了几个 Linux 网络方向的性能分析工具,本文再补充几个.总结下来,余下的工具包括但不限于以下几个: sar:统计信息历史 traceroute:测试网络路由 dtrace:TCP/IP 栈跟踪 iperf / netperf / netserver:网络性能测试工具 perf 性能分析神器 由于篇幅有限,本文会先介绍前面两个,其他工具留作后面介绍,大家可以持续关注. sar sar 是一个系统历史数据统计工具.统计的信息非常全,包括 CPU.内存.磁盘 I/O.网

【转】一文掌握 Linux 性能分析之网络篇

比较宽泛地讲,网络方向的性能分析既包括主机测的网络配置查看.监控,又包括网络链路上的包转发时延.吞吐量.带宽等指标分析.包括但不限于以下分析工具: ping:测试网络连通性 ifconfig:接口配置 ip:网络接口统计信息 netsat:多种网络栈和接口统计信息 ifstat:接口网络流量监控工具 netcat:快速构建网络连接 tcpdump:抓包工具 sar:统计信息历史 traceroute:测试网络路由 pathchar:确定网络路径特征 dtrace:TCP/IP 栈跟踪 iperf

前端和云端性能分析工具分析报告

性能测试工具的主要作用是通过模拟生产环境中的真实业务操作,对被测试系统实行压力负载测试,监视被 测试系统在不同业务.不同压力性能下的性能表现,找出潜在的性能瓶颈进行分析.优化. 客户端与服务器相当于两个人,通过信息来进行交流.由于初次见面不好意思直接交流,与是找来了中间传话人,客户端把信息告诉给传话人,由传话人来转达给服务器.那么服务器反馈的信息也由传话人转达给客户端.一般性能测试工具都需要录制或编写客户端行为脚本. 这样传达人就有了客户端的行为能力,从而假扮客户端来欺骗服务器,与之进行通信.有

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

一个系统或者网站在功能开发完成后一般最终都需要部署到服务器上运行,那么服务器的性能监控和分析就显得非常重要了,选用什么配置的服务器.如何对服务器进行调优.如何从服务器监控中发现程序的性能问题. 如何判断服务器的瓶颈在哪里等 就成为了服务器性能监控和分析时重点需要去解决的问题了. 1     服务器的性能监控和分析 1.1      Linux服务器的性能指标监控和分析 1.1.1       通过vmstat深挖服务器的性能问题 1.1.2       如何通过mpstat 分析服务器的性能指标

一个C语言开发的炸金花纸牌游戏附带vs性能分析报告

一.游戏说明: 编写的是一个模拟炸金花的纸牌游戏,游戏附有一个操作说明文档,按照文档上的操作方法,可以简单的开启游戏,整个程序包扩一个编译好的.exe文件,和两个资源文件夹,分别存有该游戏运行时候所需要的照片资源和音乐资源,用户可以直接点击exe文件运行游戏,然后按照相关操作方法来进行游戏. 二.编程语言环境介绍: 本游戏是在VC6.0环境下,用C语言加上一个easyx的C语言图形库实现的.程序源文件建立的是.cpp文件,但是程序开发是采用的C语言语法和风格,建立.cpp文件的原因是,easyx

总结:windows下性能分析以及优化报告

性能分析以及优化     使用的是vs2017自带的性能分析工具. 主要分析了遇到的性能瓶颈,以及想到的优化方法,有的验证了,有的没有来得及. 首先看整体用时以及cpu占有率. 最终在我的设备上(I5-5200U 三星860EVO固态)运行时间约为27.3S.期间cpu占有率比较稳定. 前0.5秒cpu占用率低,大概是因为这段时间是刚开始读取文件,cpu并没有处理任务,后来便进入一边读取一遍计算的状态,cpu占有率就上来了,大概25%,但是还是不高. 而且在这里我遇到一个十分奇怪的现象 直到代码

Java性能优化指南系列(二):Java 性能分析工具

进行JAVA程序性能分析的时候,我们一般都会使用各种不同的工具.它们大部分都是可视化的,使得我们可以直观地看到应用程序的内部和运行环境到底执行了什么操作,所以性能分析(性能调优)是依赖于工具的.在第2章,我强调了基于数据驱动的性能测试是非常重要的,我们必须测试应用的性能并理解每个指标的含义.性能分析和数据驱动非常类似,为了提升应用程序的性能,我们必须获取应用运行的相关数据.如何获取这些数据并理解它们是本章的主题.[本章重点介绍JDK中提供的性能分析工具] 操作系统工具及其分析 程序分析的起点并不