参考技术A
1、压力测试概要
测试环境:apache-tomcat-8.5.16, Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
apache-jmeter-5.0
Tomcat jvm启动参数
JAVA_OPTS="-server -XX:MaxNewSize=2048m –XX:NewSize=2048m –Xms8192m –Xmx8192m"
Tomcat Server参数:
< Connector port =" 8080 "
enableLookups =" false "
disableUploadTimeout =" true "
acceptCount =" 2000 "
maxSpareThreads =" 1000 "
minSpareThreads =" 300 "
maxThreads =" 2000 "
redirectPort =" 8443 " compressableMimeType =" text/html,text/xml,text/javascript,text/css,text/plain,application/json " compression =" on " connectionTimeout =" 20000 " protocol =" HTTP/1.1 "/> />
Tomcat context 配置:
driverClassName="com.mysql.jdbc.Driver" filters="stat"
initialSize="10" maxActive="200"
maxPoolPreparedStatementPerConnectionSize="20" maxWait="60000"
minEvictableIdleTimeMillis="300000" minIdle="10"
testOnBorrow="false" testOnReturn="false" testWhileIdle="true"
timeBetweenEvictionRunsMillis="60000" type="javax.sql.DataSource"
" timeBetweenEvictionRunsMillis =" 60000 " testWhileIdle =" true " testOnReturn =" false " testOnBorrow =" false " poolPreparedStatements =" true " name =" jdbc/xxxxApp " minIdle =" 50 " minEvictableIdleTimeMillis =" 300000 " maxWaitMillis =" 60000 " maxPoolPreparedStatementPerConnectionSize =" 20 " maxTotal =" 400 " initialSize =" 50 " filters =" stat " driverClassName =" com.mysql.jdbc.Driver " connectionProperties =" druid.stat.slowSqlMillis=3000 " auth =" Container "/
数据库信息:
测试时间:xxxx/xx/xx
服务端配置:
客户端配置:
测试工具:JMeter
2、测试说明
(1)名词定义(时间单位ms)
Sample:本次测试场景共运行多少线程;
Average:平均响应时间;
Median:统计意义上的响应时间中值;
90% line:所有线程中90%的线程响应时间都小于xx的值;
Min:响应最小时间;
Max:响应最大时间;
Error:出错率;
Throughput - 吞吐量以“requests/second、requests /minute、 requests /hour”来衡量。 时间单位已经被选取为second,所以,显示速率至少是1.0,即每秒1个请求。 当吞吐量被保存到CVS文件时,采用的是requests/second,所以30.0 requests/second 在CVS中被保存为0.5
Kb/sec - 以Kilobytes/seond来衡量的吞吐量
(2)测试过程说明:
测试以下页面:
/xxx/bbbb/cccc
测试数据量(模拟用户量):
1000个线程
3000个线程:
5000个线程:
7000个线程:
PROD 环境监控
一、使用Jmeter进行简单压力测试
1.压测指标
1)压测时间:一般的压测时间是10-15分钟
2)TPS:服务端每秒处理的请求数,越大越好
3)响应时间:
4)CPU、I/O、内存、网络等
2.压力测试
1)线程组
2)开发压测脚本,添加察看结果树和聚合报告
二、添加压力机
1.先在其他的负载机(另外的电脑)上启动jmeter-server。
(jmeter-server.bat windows) (jmeter-server.sh mac、linux)
2.修改主控机Jmeter的配置文件,找到remot_hosts,把负载机的IP加到里面。
例如:remot_hosts=127.0.0.1,192.168.1.2:1099,192.168.1.3:1099
默认jmeter-server的端口号是1099,如果说负载机上的端口号改了,那么这里也得改
3.在顶部菜单-运行-远程启动中可以看到,负载机添加成功,启动时选择远程全部启动
ps:如果有参数化文件,那么在负载机同样的位置上也得有一个参数化文件。