Jmeter压测

Posted 诺浅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter压测相关的知识,希望对你有一定的参考价值。

Jmeter工具使用入门教程

添加线程组
在这里插入图片描述
用户数200,测试时间5分钟
在这里插入图片描述

添加取样器(这一步与你们自己的系统的协议对上,你是http就选择http)
在这里插入图片描述
添加响应结果断言并设置断言判断
在这里插入图片描述
在这里插入图片描述
添加聚合报告
在这里插入图片描述
添加TPS曲线,这一步需要装插件

还可以添加响应时间曲线,自行百度

如何看压测结果?

首先看聚合报告
在这里插入图片描述
错误率:错误率肯定是越低越好,理论上是要为0的,但是一般错误率在0.1%以下是可以接受的范围,然后一般来说用户量越大错误率也越大,我这里是200个用户,即线程组设置为200。然后我这里错误率是不能接受的,需要后期自己排查这些错误是什么原因。引起错误率高的原因可能是线程池,最大连接数等参数设置不够合理,比如你的应用数据库连接池最大连接数是50,然后有连接没有获取到连接就会等待,等待时间长了就报错超时,就会在失败率这里体现。
TPS:然后看TPS的值,越高越好,但一般4C8G的配置的服务器,TPS能有1000算挺不错的。我这里是应用没有连数据库,所以能有近4000。理论上来说,只要没有超过应用的承载极限,用户数越高,TPS值也会越高。但这个TPS是个均值,我们需要装插件来看TPS的波动曲线。
在这里插入图片描述
可以看到我的TPS曲线波动非常的频繁,不够稳定,也是不能接受的,后期需要排查原因。引起TPS不稳定的原因有很多,比如垃圾回收太频繁,IO太频繁也有可能导致,需要自己排查。

如果压测中错误率过高,或者TPS上不去怎么排查?

可以装一个叫nmon的软件,该软件可以采集一段时间内的服务器的CPU、内存、IO等数值的变化情况,并且可以通过分析软件显示出来曲线图。通过这个软件就可以排查。
举个例子,比如TPS很低同时CPU负载也很低,但内存很高,就可以排查出来是不是硬件资源内存不够,或者应用中有太多占内存的代码。
再比如内存折线频繁周期性的高低变化不够稳定,是否是垃圾回收器运行太过于频繁。

有哪些调优参数?

一、首先应用的日志关掉或者设置为error等高级别,正常生产上也是设置为error.

二、JVM启动参数调优设置

-Xms8g -Xmx8g -Xss1024k -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:NewSize=6154m -XX:MaxNewSize=6154m -XX:SurvivorRatio=8

三、服务器设置

[root@ksitopap015l ~]vi /etc/sysctl.conf

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_recycle=0

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_fin_timeout=30

net.ipv4.tcp_keepalive_time=1200

net.ipv4.tcp_max_syn_backlog=8192

net.ipv4.tcp_max_tw_buckets=20000

net.ipv4.ip_local_port_range=12000 65535

net.ipv4.tcp_retries2=5

net.ipv4.tcp_syn_retries=3

net.ipv4.tcp_max_syn_backlog=8192

net.ipv4.tcp_max_tw_buckets=20000

net.ipv4.ip_local_port_range=12000 65535

net.ipv4.tcp_retries2=5

net.ipv4.tcp_syn_retries=3 
# 修改完成后,执行/sbin/sysctl  -p
[root@ksitopap015l ~]vi  /etc/security/limits.conf
appadmin  soft  nofile  65535
appadmin  hard  nofile  65535
appadmin  soft  nproc  65535
appadmin  hard  nproc  65535
# 修改用户可用最大线程数是为102400
[root@ksitopap015l ~]vi  /etc/security/limits.d/20-nproc.conf
appadmin soft nproc 102400

关于工具

文中用到的全套工具连接

以上是关于Jmeter压测的主要内容,如果未能解决你的问题,请参考以下文章

jmeter压测

jmeter在服务器上的压测命令

jmeter 多接口压测中出现取值 EOF,且压力机不断报文件io错误的现象

压测工具笔记(二)之JMeter

jmeter压测app

性能工具之Jmeter压测Thrift RPC服务