Jmeter 分布式性能测试避坑指南

这篇具有很好参考价值的文章主要介绍了Jmeter 分布式性能测试避坑指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在做后端服务器性能测试中,我们会经常听到'分布式'。那你,是否了解分布式呢?今天,我们就来给大家讲讲,在企业实战中,如何使用分布式进行性能测试,实战过程中,又有哪些地方要特别注意?

 文章来源地址https://www.toymoban.com/news/detail-666374.html

Jmeter 分布式性能测试避坑指南,软件测试,程序员,人工智能,单元测试,压力测试

为什么要使用分布式?

做性能测试时,如果被测系统性能比较好,或者系统项目比较大,那么一般都会要求能支持比较高的并发用户数。而我们做性能测试时,发起请求的机器,硬件资源是一定的,不可能配置无限大,所以,它能发起的并发用户数是有限的,而当我们发起方一台电脑能发起的并发用户数小于我们性能测试期望的并发用户数时,我们就会自然而然想到增加发起方的电脑。增加发起方电脑数量,那么,发起的并发用户数累加,就增大了。

发起方一台电脑,不管是windows系统还是linux系统,一般而言,大概能支持1.5k左右并发用户,更多并发用户就要采用分布式。

那么,接下来的问题就是如何配置分布式?

如何配置分布式?

  • 助攻机配置,修改jmeter.properties文件 首先,我们准备多台机器,作为助攻机器; 然后,检查每台机器上是否安装了jdk,并且jdk版本是否都一致; 然后,在助攻机器上放置相同版本的jmeter; 接下来,配置jmeter.properties文件, 修改server_port端口,自定义一个端口 修改server.rmi.ssl.disable=true 修改 server.rmi.port 端口 ---- 可选 启动服务:jmeter-server -Djava.rmi.server.hostname=ip_address 检查防火墙,关闭或开放 自定义的server_port端口
  • 主控机器配置,修改jmeter.properties文件 修改remote_hosts,值为助攻机器ip 修改,server.rmi.ssl.disable=true 修改, mode=Standard

分布式机器配置有哪些注意事项?

分布式的配置,是不是很简单呢?

是的,这个配置实际上一点都不难,如果你要自己练手,按照上面的操作,就能很简单配置成功。但是,当你在企业项目中实战时,还会这么简单吗?如果你企业的项目,需要支持大几万的并发,要使用几十台助攻机器,是不是就简单重复上面的操作就可以了呢?

答案是否定的。

现在有几十台linux机器,放在你面前,供你去配置为助攻机。数量比较大,完全无法保证每一台都一模一样,所以,我们先要检查机器配置。

  • 1、硬件资源 cpu、内存是一台电脑的核心, 几十台机器,我们完全无法保证每一台都一样,在助攻机的要求中,虽然,没有对cpu和内存做要求,但是,如果每台机器能提供的资源不一样,那么能产生的并发用户数量肯定也会不相等,所以,我们需要找出有机器中,最低配置的机器,然后,以最低配置机器为参考配置jmeter的堆栈信息。 通过top命令,查看下每个系统的cpu和内存信息 修改jmeter的bin文件夹中jmeter文件HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" 修改堆栈信息中的大小。 不配置,在执行高并发用户数时,jmeter可能会出现OOM问题
  • 2、系统环境 jdk 机器多了,每台机器的jdk大版本是否一致,可能就是个问题。如果,机器上没有安装,哪可以直接去安装指定版本即可,但是,如果助攻机器上已经安装了其他版本的jdk,并且正运行其他java项目,这个时候怎么办呢? 指定jmeter的运行jdk版本 1、下载解压指定jdk版本到linux的/usr/local 文件夹下, 不要去配置改动系统环境变量 2、在jmeter的jmeter文件中,添加JAVA_HOME=/usr/local/jdk版本/ 指定jmeter运行的jdk版本,这样,就不用改动操作系统的jdk,不影响系统中其他java项目 jmeter jmeter版本 所有助攻机器上jmeter的版本都必须一致。 jmeter.properties要修改ssl.disable=true, 端口可以不相同 如果代码中使用了第三方插件,助攻机器上,也必须有这些插件包 环境变量 jmeter运行,本身可以不配置JMETER_HOME环境变量,但是,当机器多了时,还是建议在所有机器上配置JMETER_HOME环境变量 HEAP配置 机器多了,可能每台机器的内存都不一样, 我们期望助攻机器能产生更大的并发用户数,所以,建议修改每台机器的HEAP配置信息,设置为相同 csv文件 如果写的jmeter脚本中,使用了csv数据文件设置,那么文件的路径,请使用相对路径写法。 jmeter-server助攻服务在哪个路径下启动,就要在所有的机器上,上传csv文件到该路径下的相对位置。 os操作系统 os版本: 没有要求,可以是不同版本 端口区间: 操作系统的端口数量是有限的,不同系统,默认情况下,打开的端口数量可能不相等,这就需要我们去配置一下每台机器上打开的端口范围。 sysctl -a | grep net.ipv4.ip_local_port_range 这个命令可以查看当前机器上,开启的端口范围 sysctl -w net.ipv4.ip_local_port_range="1024 65534" 然后再执行sysctl -p 生效。 这样,设置每台机器上,开启的端口范围。 打开文件数量 操作系统对每个程序能打开的文件数量是有限制的,这个是系统限制,我们可以通过ulimit -n 看到, 也可以通过cat /proc/进程id/limit 查看某个进程今天能打开的文件数量限制。 因为性能测试助攻机,也是要发起大量请求的,这有可能要打开大量的文件,如果文件数量限制过小,也会导致问题,所以,我们可以通过ulimit -n 数量 来修改进程可以打开的文件数量。然后,重启动jmeter-server助攻服务,这样,就会以你修改后的数量来做限制了。 时间 助攻机器多了,可能出现每台机器的时间不一样,我们可以通过date 查看每台机器的时间。 性能测试,期望是在同一时间能发起大量请求,如果,多台机器时间不一致,那么在同一时间,发起的请求数量可能就达不到预期要求,所以,我们需要同步设定每台机器的时间。date -s 时间 来设定系统时间。
  • 3、网络环境 几十台机器,网络配置可能会不一样,如果这些助攻机器到被测服务器之间的网络存在问题,那么,可能就会导致请求压力上不会,甚至出现网络错误。 我们可以在每台助攻机器上,使用tracepath 被测服务器 来查看助攻机到被测服务器之间的网络情况。如果发现,网络延迟时间很长,哪就说明,当前机器,可能网络配置有问题。在使用时,可能就要剔除这台助攻机器。
  • 4、启动服务 在每台助攻机器上执行:jmeter-server -Djava.rmi.server.hostname=ipaddr 因为每台的ip地址都不一样,所以,这个命令必须一个一个的敲。 同时,我们可以加个’&‘ 符号,把命令转换为后台运行。 在主控机器上执行:java -Xms48g -Xmx48g -XX:MaxMetaspaceSize=2g -jar $JMETER_HOME/bin/ApacheJMeter.jar -n -R xxx:port,xxx:port -t xxx.jmx -l xxxx.jtl -e -o xxdirect -Xms48g -Xmx48g -XX:MaxMetaspaceSize=2g 这个是设置主控机器jmeter的堆栈信息,这个大小,可以根据自己机器的内存大小灵活修改,但是,这个一定要设置的比较大。如果小了,生成报告的时间就会很长。 $JMETER_HOME/bin/ApacheJMeter.jar 为自己的jmeter路径 -R xxx:port,xxx:port 指定助攻机器。可以根据自己的需要指定。如果,不需要采用分布式,就不用这一段,如果要用分布式,就要使用这一段,多台时,就用逗号分隔。 -t xxx.jmx 你放在主控机器上的jmeter脚本文件

好了,这些注意事项,你都学会了吗?

 

到了这里,关于Jmeter 分布式性能测试避坑指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jmeter进阶使用指南-分布式测试

    当你需要模拟大量并发用户并测试应用程序的性能时,JMeter的分布式测试功能非常有用。分布式测试允许你使用多个JMeter实例来模拟并发用户,从而提供更高的负载。 下面是一个详细的介绍和讲解分布式测试的步骤: 准备主机和从机: 首先,你需要准备一台主机和多台从机

    2024年02月09日
    浏览(29)
  • JMeter分布式集群---部署多台机器进行性能压力测试

    有些时候,我们在进行压力测试的时候,随着模拟用户的增加,电脑的性能(CPU,内存)占用是非常大的,为了我们得到更加理想的测试结果,我们可以利用jmeter的分布式来缓解机器的负载压力,分布到多台机器同时运行。 1.Jmeter分布式执行原理: 1、Jmeter分布式测试时,选择

    2024年02月11日
    浏览(29)
  • 性能测试 —— Jmeter分布式测试的注意事项和常见问题

    Jmeter是一款开源的性能测试工具,使用Jmeter进行分布式测试时,也需要注意一些细节和问题,否则可能会影响测试结果的准确性和可靠性。 Jmeter分布式测试时需要特别注意的几个方面 1. 参数化文件的位置和内容 如果使用csv文件进行参数化,即通过读取csv文件中的数据来为测

    2024年02月05日
    浏览(29)
  • 【性能测试】分布式压测之locust和Jmeter的使用

    受限于单台机器的配置问题,我们在单台机器上达不到一个很高的压测并发数,那这个时候就需要 引入分布式压测 分布式压测原理: 一般通过局域网把不同测试计算机链接到一起,达到测试共享、分散操作、集中管理的目的。 选择一台作为调度机(MASTER),其他机器作为执

    2024年02月19日
    浏览(32)
  • 超全整理,Jmeter性能测试-脚本error报错排查/分布式压测(详全)

    性能脚本error报错问题排查 1、脚本运行过程中报错 1)在windows系统jmeter中,给测试脚本添加查看结果树,添加保存错误日志信息 第一步,给文件取名error.xml 第二步,仅错误日志 第三步,点击配置,全部勾选 2)把linux系统中保存的error日志文件,导入到windows系统jmeter查看结

    2024年02月07日
    浏览(42)
  • Jmeter性能实战之分布式压测

    1、JMeter分布式测试时,选择其中一台作为调度机(master),其它机器作为执行机(slave)。 2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。 3、执行完成后,slave会把结果回传给master,m

    2024年02月07日
    浏览(30)
  • Jmeter分布式压力测试

    目录 1、场景 2、原理 3、注意事项 4、slave配置 5、master配置 6、脚本执行 在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。 例如4C8G的window server机器,使用UI方式,最高压测

    2024年02月08日
    浏览(28)
  • 软件测试/测试开发/全日制/测试管理丨Git分布式版本控制系统

    分布式版本控制: Git是一种分布式版本控制系统,每个开发者都可以拥有完整的代码仓库的拷贝,不依赖中央服务器。这使得团队成员可以在本地独立工作,并且不需要持续的网络连接。 代码仓库: Git用来存储代码的地方被称为仓库(Repository)。仓库可以分为本地仓库和远程

    2024年01月18日
    浏览(57)
  • Jmeter分布式压力测试详解

    在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。 例如4C8G的window server机器,使用UI方式,最高压测在1800并发(RT 20ms以内)左右。如果对于XML文件进行解析,更容易吃CPU,并发

    2024年02月05日
    浏览(26)
  • docker+jmeter实现简单的分布式压力测试

    阶梯压力测试的场景是为了验证在系统运行期间,用户不断的登录系统并使用一段时间,通过阶梯的场景,模拟实际应用期间系统的稳定性、承载性。 二、常用的阶梯压力测试线程组 stepping Thread Group 步长插件 Concurrency Thread Group 步长并发插件 两者区别 stg不提供设置启动延迟

    2024年04月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包