Tomcat中Max-thread配置项对TPS的影响
压测指标以及对应含义:
image.png
压力工具中的线程数和用户数与 TPS的关系?
Jmeter中线程数即虚拟用户数量;TPS即每秒事务数。在性能测试过程中,TPS 之所以重要,是因为它可以反应出一个系统的处理能力。
我们常说的并发是什么?
我们要先说明"并发"这个概念是靠什么数据来承载的。在上面的内容中,我们说了好多的指标,但并发是需要具体的指标来承载的。你可以说,我的并发是 1000TPS,或者 1000RPS,或者 1000HPS,这都随便你去定义(一般我们使用TPS来定义这个概念)。但是在一个具体的项目中,当你说到并发 1000 这样没有单位的词时,一定要让大家都能理解这是什么。比如一个线程平均处理请求的时间是250ms,压力工具是 4 个并发线程,由于每个线程都可以在一秒内完成 4 个事务,所以总的 TPS 是 16。
本次压测过程中,主要监控的几项指标: tps,响应时间,错误数,线程数,cpu使用率,jvm内存;
tps,响应时间,错误率可以使用jmeter来进行压测,结合报告进行判断;
线程数,cpu使用率,jvm内存则使用jconsole来进行监控。
jmeter相关参数配置以及指标
测试场景:
使用梯度施压的测试场景,最大压力值为600虚拟用户,每次增加30线程,每次施压持续一分钟。
image.png
Jconsole监控tomcat性能指标;
在jdk安装目录下,打开jconsole.exe可执行程序,即可看到如下界面;
image.png
这边可以选择本地进程以及远程进程,远程进程则需要配置
export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote"
export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.port=9001"
export JAVA_OPTS="${JAVA_OPTS} -Djava.rmi.server.hostname=x.x.x.x"
export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"
正确配置后即可看到应用程序的一个概况: