1、性能测试瓶颈可能和use keepAlive这个有关
保持活跃度这个在jmeter测试中,我之前为了解决压大量并发报无法识别路由的异常,将其勾掉,确实能够减少报错,但吞吐率无法正常提升起来,如果机器本身资源充足,use keepAlive这个参数需要勾选,要不客户端压力无法给到服务端,也就是资源充足,想把压力给足一定要勾选这个,并且如果出现异常,想着如果解决保证这个勾选情况下去处理其他条件异常:
2、勾选这个参数在Ubuntu系统报错,可能原因:
确认Linux系统是否已经启用keepalive功能。可通过以下命令查看系统中是否已经启用keepalive:
cat /proc/sys/net/ipv4/tcp_slow_start_after_idle
在linux里面配置:
vim /etc/sysctl.conf
在这个文件的最下面加上这个
net.ipv4.tcp_slow_start_after_idle = 0
之后执行
sysctl -p
3、jmeter的linux环境配置:
vim /etc/profile
export JMETER_HOME=/usr/local/apache-jmeter-5.5
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
之后source /etc/profile
刚安装好的java
通过which java
只会显示:/usr/bin/java
通过一层一层找到软连接的路径,最终确认java路径,并配置到环境变量中
ls -l /usr/bin/java
ls -l /etc/alternatives/java
jmeter -n -t test.jmx -l test.jtl
备注:
排查性能qps压不上去的问题,可以先从jmter版本、java版本(8、11),以及堆内存是否给足,以及脚本是否勾选use keepAlive,及网络带宽是否有限制(有最大限制),网络是否已经达到最大