本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
一篇学会 JMeter 分布式部署
程序猿小军 · 274浏览 · 发布于2022-01-13 +关注

在压力测试中,有一个常见问题就是压测机自身性能不行,无法提供满足要求的压力,达不到性能瓶颈,从而不能够满足测试的目的。在单台压力机性能不足但是有其他可用的压力机这种情况下(有多台虚拟机,但每台的性能都不够强),可以使用分布式部署 1主多从的方式,充分利用多台服务器的性能,提供足够并发压力来满足测试需要。笔者使用这种方式,利用15台服务器的压测集群达到了3W并发请求的压力。

分布式部署为一个主控端,多个被控端。主要是配置被控端。均需要部署在linux上,目前发现windows作为主控端访问linux被控端会特别卡。

需要被控端先启动 jmeter-server,主控端通过rmi 访问。

需保证主控端能够访问被控端的IP地址

如果有额外的插件或数据源(如csv等),主控端被控端都需要增加

linux系统参数优化。linux默认最大连接数1024,在压测过程中经常会出现连接数不足导致的异常,需要先调整系统参数再做测试。

vi /etc/sysctl.conf

vm.max_map_count=655360 
vm.swappiness=1 

fs.file-max=655356000 
fs.nr_open=104857600 

net.ipv4.tcp_fin_timeout = 30 
net.ipv4.tcp_keepalive_time = 1200 
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.ip_local_port_range = 1024 65000 
net.ipv4.tcp_max_syn_backlog = 8192 
net.ipv4.tcp_max_tw_buckets = 5000

    修改完毕后执行下面命令生效

    /sbin/sysctl -p

      vi /etc/security/limits.conf

      root    soft    nofile    1048576 
      root    hard    nofile    67108864 
      root    soft    nproc     102400 
      root    hard    nproc     655360 
      *       soft    memlock   unlimited 
      *       hard    memlock   unlimited

        注: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 -R 192.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脚本放到主控端中

        • 在主控端启动测试,可以通过命令行参数来指定循环次数和执行时间,同时指定有代表性的html文件夹名称,方便后续访问

        • 等待测试执行完毕并生成测试报告html文件

        • 打开html/index.html 查看测试报告,建议用nginx开始auto_index来访问

        注意事项

        • 如果执行的测试过多,主控端最终生成报告时会非常慢,还可能内存不足,要提高jmeter使用的java虚拟机的内存配置。必须等待测试程序自己完成才行,否则测试报告会无法访问

        • 如果并发非常大时,首先造成的是网络瓶颈,必须修改网络连接参数以满足连接数的需要,否则并发压力在网络层就已经阻塞了,无法打到业务服务器上,会达不到测试的目的


        相关推荐

        将Fedora 29升级到Fedora 30

        吴振华 · 703浏览 · 2019-05-14 22:00:02
        使用Nginx反向代理到go-fastdfs

        iamitnan · 724浏览 · 2019-05-23 13:42:00
        利用VLC搭建组播流服务器

        追忆似水年华 · 2692浏览 · 2019-06-14 11:27:06
        用Bash脚本监控Linux上的内存使用情况

        吴振华 · 974浏览 · 2019-06-24 11:27:02
        加载中

        0评论

        评论
        我是来自差了一点掉完头发的程序猿,小军,希望在这里可以向各位大佬们学习。
        分类专栏
        小鸟云服务器
        扫码进入手机网页