当前位置: 首页 > 科技观察

一篇学习JMeter分布式部署的文章

时间:2023-03-14 09:26:21 科技观察

在压测中,一个普遍的问题是压测机本身的性能不够好,无法提供满足要求的压力,达不到性能瓶颈,从而达不到考试目的。在单台压力机性能不足但有其他压力机可用的情况下(有多个虚拟机,但每个压力机的性能都不够强),可以采用一主多从的分布式部署方式充分利用多个虚拟机。一台服务器的性能可以提供足够的并发压力来满足测试需求。采用这种方式,笔者使用了15台服务器的压力测试集群,达到了3W并发请求的压力。分布式部署是一个主控端和多个被控端。主要配置被控端。都需要部署在linux上。目前发现windows作为主控终端访问linux受控终端,会特别卡。被控端需要先启动jmeter-server,master端通过rmi访问。需要保证主控端可以访问被控端的IP地址。如果有额外的插件或数据源(如csv等),主控端和被控端都需要增加linux系统参数优化。linux默认最大连接数为1024,在压力测试过程中,经常会出现连接数不足导致的异常。测试前需要调整系统参数。vi/etc/sysctl.confvm.max_map_count=655360vm.swappiness=1fs.file-max=655356000fs.nr_open=104857600net.ipv4.tcp_fin_timeout=30net.ipv4.tcp_keepalive_time=1200net.ipv4.tcpnet_syncipookies4.1tcp_tw_reuse=1net.ipv4.tcp_tw_recycle=1net.ipv4.ip_local_port_range=102465000net.ipv4.tcp_max_syn_backlog=8192net.ipv4.tcp_max_tw_buckets=5000修改完毕后执行下面命令生效/sbin/sysctl-pvi/etc/security/limits.confrootsoftnofile1048576roothardnofile67108864rootsoftnproc102400roothardnproc655360*softmemlockunlimited*hardmemlockunlimited注意:在vi编辑器中,按i进入编辑模式。shift+insert粘贴,编辑完按esc退出编辑模式,输入:wq保存退出主控终端linux修改{dir}/bin/jmeter.properties中?server.rmi.ssl.disable=true,注意把注释去掉,关闭ssl,或者配置证书。此时,被控端和主控端必须保持一致。将编辑好的脚本生成jmx,用命令行启动jmeter-R,然后写入被控端的IP和端口号,用,分隔多个被控端。-l存储结果-e-o输出html的地址脚本注意设置持续时间或循环次数,到达指定时间或次数后会自动停止并开始生成报告。错误的设置可能会阻止测试被中止,只能手动关闭。手动关机生成报告启动命令失败./jmeter-n-t../test2.jmx-R192.168.0.140:8123,192.168.0.156:8123-l../results/5.jtl-e-o../results/html5被控端linux修改{dir}/bin/jmeter.properties中的?server.rmi.ssl.disable=true,注意去掉注释,关闭ssl,或者配置证书修改监听IP,可以使用ifconfig查看本机IP。修改{dir}/bin/jmeter-server中的RMI_HOST_DEF=-Djava.rmi.server.hostname={IP},注意去掉注释掉的#。例如RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.181调用端口默认为1099,如需修改,修改?{dir}/bin/jmeter-server中的?SERVER_PORT:-1099。这里改完配置修改号后,启动jmeter-server,等待高手发来指令,最后整理一下接下来的步骤。使用jmeter可视化界面编写压力测试脚本,调试受控和主控jmeter的部署,修改配置。把写好的jmx脚本放到master终端在主控端开始测试。可以通过命令行参数指定循环次数和执行时间,并指定一个有代表性的html文件夹名称,方便后续访问。等待测试完成并生成测试报告html文件打开html/index.html查看测试报告,建议使用nginx启动auto_index访问注意事项。如果执行过多的测试,最终主控端生成报告的速度会很慢,而且可能内存不足。需要增加jmeter使用的java虚拟机的内存配置。您必须等待测试程序完成,否则将无法访问测试报告。如果并发量很大,首先会造成网络瓶颈,必须修改网络连接参数以满足连接数的需要。否则,并发压力会阻塞在网络层,无法打到业务服务器,将达不到测试目的商业转载请联系作者授权,非商业转载请注明出处。