新兴人员就创平台项目压力测试报告版本:V2.0编制:冯玉娜日期:2015年09月01日审核:张春雨日期:2015年09月01日批准:陈家祯日期:2015年09月01日目录新兴人员就创平台项目压力测试报告 (1)目录 (2)第一章压力测试概述 (1)1.1 压力测试 (1)1.2 测试目的 (1)1.3 测试方法 (1)1.4 测试指标及期望 (1)第二章系统参数配置 (3)2.1 Apache配置 (3)2.2 Tomcat配置 (3)2.3 Myql 配置 (3)第三章压力测试执行 (5)3.1 测试场景 (5)3.2 测试指标 (10)3.3 运行状况记录 (10)第四章测试结果 (11)4.1服务器端运行实时性能 (11)4.2客户端测试数据 (11)4.3总结 (12)第一章压力测试概述1.1 压力测试在性能测试中,压力测试主要是为了获取系统在较大压力状况下的性能表现而设计并实现的,压力测试主要是获取系统的性能瓶颈和系统的最大吞吐率。
本次压力测试是指针对现行的新兴人员就创平台项目的多用户处理能力的测试,检验系统的吞吐率。
1.2 测试目的压力测试的目的就是检验系统的最大吞吐量,检验现行的新兴人员就创平台项目的多用户处理能力的运行状况,检验系统地运行瓶颈,获取系统的处理能力等。
总结一套合理的、可操作的、适合公司现实情况的性能测试方案,为后续的性能测试工作提供基本思路。
1.3 测试方法用接口性能测试工具对现行新兴人员就创平台项目进行逐步加压和跟踪记录。
测试过程中,由管理平台调用各台测试前台,发起各种请求,并跟踪记录服务器端的运行情况和返回给客户端的运行结果。
1.4 测试指标及期望在本次性能测试中,各类测试指标包括测试中应该达到的某些性能指标,这些性能指标均是来自应用系统设计开发时遵循的业务需求,当某个测试的某一类指标已经超出了业务需求的要求范围,则测试已经达到目的,即可终止压力测试。
第二章系统参数配置2.1 Apache配置StartServers 5ServerLimit 70ThreadLimit 200MaxClients 7000MinSpareThreads 25MaxSpareThreads 500ThreadsPerChild 100MaxRequestsPerChild 40002.2 Tomcat配置export JAVA_OPTS="-server -Xms2048M -Xmx2048M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m"<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="5000"minSpareThreads="100" maxldleTime="6000"/><Connector executor="tomcatThreadPool" port="2083" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443"maxThreads="5000" acceptCount="2000"maxProcessors="1000" minProcessors="5"compression="on" compressionMinSize="2048"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"minSpareThreads="25" maxSpareThreads="75"enableLookups="false" URIEncoding="UTF-8"/>2.3 Myql 配置[mysqld]back_log = 500max_connections = 2000max_connect_errors = 9999999table_open_cache = 512max_allowed_packet = 16Mbinlog_cache_size = 1Mmax_heap_table_size = 64Msort_buffer_size = 8Mjoin_buffer_size = 8Mthread_cache_size = 4thread_concurrency = 4query_cache_size =128Mquery_cache_limit = 2Mdefault-storage-engine = myisamthread_stack = 192Ktransaction_isolation = REPEATABLE-READtmp_table_size = 64Mlog-bin=mysql-binbinlog_format=mixedslow_query_log=1long_query_time = 2lower_case_table_names = 1key_buffer_size = 128Mread_buffer_size = 2Mread_rnd_buffer_size = 16Mbulk_insert_buffer_size = 32Mmyisam_sort_buffer_size = 64Mmyisam_max_sort_file_size = 2Gmyisam_repair_threads = 1myisam_recover[myisamchk]key_buffer_size = 128Msort_buffer_size = 128Mread_buffer = 8Mwrite_buffer = 8M[mysqld_safe]open-files-limit = 16384整体上,从前到后,Apache-Tomcat-Mysql 是7000 - 5000 - 2000的比例。
注:运行时测试环境已停止第三章压力测试执行3.1 测试场景3.1.1 登陆一、模拟1s 200个用户同时登陆。
测试结果如下图:二、模拟1s 500个用户同时登陆。
测试结果如下图:三、1000用户并发,每隔1s 增加50个并发用户。
测试结果如下:四、1000用户并发,每隔2s 增加50个用户,达到1000用户时,同时登陆,运行5分钟后,依次释放虚拟用户。
测试结果如下:3.1.2 注册一、100个用户同时注册,每秒增加10个用户,运行结果如下:Passed transaction :2396Falsed transaction :423Error :434二、1000用户并发,每隔1s 增加100个用户,达到1000用户时,同时注册。
运行5分钟后,依次释放虚拟用户,测试结果如下:3.1.3 发通知一、一个辅导员账号同时发送500条通知给学生,测试结果如下:Passed transaction :5094Falsed transaction :560Error :720二、一个辅导员账号同时发送1000条通知给学生,测试结果如下测试结果如下:3.1.4 用户完善资料一、500个用户,每两秒增加50个用户并发,测试结果如下:Passed transaction :6853Falsed transaction :342Error :1848二、1000个用户,每秒100个用户增加,增加到1000用户时并发,并发运行5分钟后,依次释放。
测试结果如下图:3.1.5 通讯录,检索用户接口一、500个用户,每一秒增加100个用户并发Passed transaction :8429Falsed transaction :2052Error :1071二、500个用户并发,每2秒增加50个用户,增加到500个用户时,同时执行查询动作,测试结果如下图:3.2 测试指标➢吞吐量:单位时间内网络传输数据量➢冲突率:在以太网上监测到的每秒冲突数➢数据库的并发连接数➢客户端的最大连接数➢数据库锁资源的使用数量3.3 运行状况记录记录可扩展性测试中的测试结果及其系统的运行状况。
除了记录测试指标以外,应该结合测试实时记录系统各个层次的资源和参数。
主要包括:➢硬件环境资源➢服务器操作系统参数➢网络相关参数➢数据库相关参数(具体数据库参数有所不同,结合各个数据库独有的特点记录)第四章测试结果4.1服务器端运行实时性能命令执行报告如下:4.2客户端测试数据图形结果,如下(登陆测试):4.3总结500并发压力下,25092成功响应,6条超时,成功率99.98%,平均响应时间4.9秒。
其中失败的日志如下:2015-09-01 20:26:28,434 - [INFO] - from application in ForkJoinPool-2-worker-1响应报文{"nuid" : "55dbd5c8291499fd4ac0c1d9","secId" : 0,"roleList" : "teacher","id" : "1","apkpath" : "http://localhost:8080/jiuchuangdownloadFile/client/SlothBranNew.apk","iospath" : "https:///jiuchuang/downloadFile/client/TaoZhiHuiProj.ipa", "userName" : "老师","code" : "10000","nsid" : "s%3Arlp6RvzqLXFDEDOtm7BHIbas.3BpES4P1WimZsTbxNsecpxxROTPZran0Ob6hgirodIs", "imageDiyBgVo" : {"orgId" : 1,"loginBgId" : null,"webBgId" : null,"logoId" : null,"maxLoginBgUrl" : null,"maxWebBgUrl" : null,"maxLogoUrl" : null,"maxMobileLoginBgUrl" : null,"maxMobileLoadingBgUrl" : null,"maxMobileLoginBg4SUrl" : null,"maxMobileLoadingBg4SUrl" : null,"minLoginBgUrl" : null,"minWebBgUrl" : null,"minLogoUrl" : null,"minMobileLoginBgUrl" : null,"minMobileLoadingBgUrl" : null,"minMobileLoginBg4SUrl" : null,"minMobileLoadingBg4SUrl" : null},"trueNameCheck" : "false","version" : "0.1.9"}2015-09-01 20:26:28,438 - [INFO] - from application in ForkJoinPool-2-worker-3响应报文{"nuid" : "55dbd5c8291499fd4ac0c1d9","secId" : 0,"roleList" : "teacher","id" : "1","apkpath" : "http://localhost:8080/jiuchuangdownloadFile/client/SlothBranNew.apk", "iospath" : "https:///jiuchuang/downloadFile/client/TaoZhiHuiProj.ipa", "userName" : "老师","code" : "10000","nsid" : "s%3AYZipvMD9uGDf9X5JTcKanDtf.7zU0tXJijvm8PCGvO6vfNn8ChEGGmQMK1bvKPO3yww0", "imageDiyBgVo" : {"orgId" : 1,"loginBgId" : null,"webBgId" : null,"logoId" : null,"maxLoginBgUrl" : null,"maxWebBgUrl" : null,"maxLogoUrl" : null,"maxMobileLoginBgUrl" : null,"maxMobileLoadingBgUrl" : null,"maxMobileLoginBg4SUrl" : null,"maxMobileLoadingBg4SUrl" : null,"minLoginBgUrl" : null,"minWebBgUrl" : null,"minLogoUrl" : null,"minMobileLoginBgUrl" : null,"minMobileLoadingBgUrl" : null,"minMobileLoginBg4SUrl" : null,"minMobileLoadingBg4SUrl" : null},"trueNameCheck" : "false","version" : "0.1.9"}2015-09-01 20:26:28,569 - [INFO] - from application in ForkJoinPool-2-worker-1成功数1982015-09-01 20:26:28,690 - [INFO] - from application in ForkJoinPool-2-worker-3成功数1992015-09-01 20:26:28,695 - [INFO] - from application in ForkJoinPool-2-worker-1响应报文{"nuid" : "55dbd5c8291499fd4ac0c1d9","secId" : 0,"roleList" : "teacher","id" : "1","apkpath" : "http://localhost:8080/jiuchuangdownloadFile/client/SlothBranNew.apk","iospath" : "https:///jiuchuang/downloadFile/client/TaoZhiHuiProj.ipa","userName" : "老师","code" : "10000","nsid" : "s%3ARNtUKcC0y8AbakvG9ikXi8Ev.FS6SExFMNRJSlX5E1LgwSxxcL4MDGeOdBBLE8wUlNVc", "imageDiyBgVo" : {"orgId" : 1,"loginBgId" : null,"webBgId" : null,"logoId" : null,"maxLoginBgUrl" : null,"maxWebBgUrl" : null,"maxLogoUrl" : null,"maxMobileLoginBgUrl" : null,"maxMobileLoadingBgUrl" : null,"maxMobileLoginBg4SUrl" : null,"maxMobileLoadingBg4SUrl" : null,"minLoginBgUrl" : null,"minWebBgUrl" : null,"minLogoUrl" : null,"minMobileLoginBgUrl" : null,"minMobileLoadingBgUrl" : null,"minMobileLoginBg4SUrl" : null,"minMobileLoadingBg4SUrl" : null},"trueNameCheck" : "false","version" : "0.1.9"}2015-09-01 20:26:28,828 - [INFO] - from application in ForkJoinPool-2-worker-1成功数2002015-09-01 20:26:28,833 - [WARN] - from application in ForkJoinPool-2-worker-1本次请求执行完毕-------------平均响应时间为970----最小响应时间为531---最大响应时间为3752---成功数量200---失败数0注:本次测试客户端在单个PC环境,500并发时受到单机网络的瓶颈限制,实际环境中服务器压力要稍大,客户端响应性能会更高。