Jmeter压力测试笔记(6)性能调测-压力并发-模拟生产环境数据

  问题原因找到了,那就好办了。

    找到阿里云技术人员,让他们强行给我们上架了一个共享代理模式的RDS。  并重新进行压力测试。

  哦豁~ 开心,压力测试顺利,异常率大大降低实际为: 

Jmeter压力测试笔记(6)性能调测-压力并发-模拟生产环境数据

  数据库DBA反馈,数据库收到很多请求处理,数据库开始正常工作。(之前都是,数据库连接满,但活跃连接只有1到5个)。 数据库连接数在50到100之间波动,且基本都是活跃连接。

  NGINX和php那边都工作正常,服务器cpu压力下降。各项功能都平稳。

  然后开始真真正正进行模拟生产用户数据压力测试:

  

   生产环境数据如下:

    高峰时期: 总并发连接数12w 活跃连接数10万;新建连接数1300/s;吞吐量:6200/S。

    如何通过调整jmeter脚本的线程数,吞吐量来实现该场景,就得多次尝试了。

   jmeter运行环境如下: centos7   java1.8.161; jmeter 5.2.1   4C8G。 阿里云机器。

  

    1,实现并发连接数和活跃连接数。

      并发连接数=活跃连接数+非活跃连接数

        活跃连接数=jmeter线程数*执行机器数量

        非活跃连接数=tcp连接中断数: 实际执行过程中发现:如果设置的吞吐量过高,会造成大量的非活跃连接数。与真实请求场景不一致。 后面细说。

    

       如何提升活跃连接数:------加机器+内存。没其它办法。现在的机器一般cpu都是够用的。  实际设置1800线程运行时,机器只有20%的cpu使用率。

        

        通过测试的经验计算,大概一个线程需要消耗3M内存。所有如果想跑2000线程,那么你得设置虚拟机6000m,否则,会爆出内存溢出错误。

        通过命令启动执行机:

        JVM_ARGS="-Xms1024m -Xmx6000m" ./jmeter-server &     ####注意,不要超过自己机器实际能使用的内存!!!!留点空闲给机器本身用,否则会很卡,很慢。异常高

        我喜欢这种方式,方便调整内存。哈哈。

          顺便写几个清理内存和杀进程的命令:

查看执行机运行日志: tail -f apache-jmeter-5.2.1/bin/jmeter-server.log 查看1099端口: netstat -an|grep 1099 查看java进程: ps -ef|grep java 批量杀进程操作:我特别喜欢哈哈 ps -ef|grep java|awk \'{print $2}\'|xargs kill -9 统计查询tcp 80端口数量: netstat -nat|grep -i 80|wc -l 统计查询tcp time_wait 端口数量: netstat -an | awk \'/^tcp/ {++s[$NF]} END {for(a in s) print a,s[a]}\'

查看内存使用量:
free -m

同步缓存:
sync

清理内存:建议在杀java进程后使用,先使用sync同步。
echo 3 > /proc/sys/vm/drop_caches

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdgjx.html