jmeter(二十七)分布式压测注意事项
之前的博客:jemter(二十三):分布式测试简略的介绍了利用jmeter做分布式测试的方法,当时只是介绍了背景和原因,以及基本的配置操作,有同学说写得不够详细。
正好今年双十一,我司的全链路压测,也尝试了jmeter分布式压测的手段。这篇博客,介绍下利用jmeter在NGUI模式下进行分布式压测的一些小技巧和注意事项。
一、压测机
1、数量&成本
无论是从成本角度还是维护的难易方面,压测机的数量,适量就好。
举个例子,8C16G的一台服务器,部署jmeter后,根据我个人的测试比对数据,配置≤1500个线程数,最好。太多了性能损耗较大,延时高;太少了又浪费。
2、controller&agent
模拟的并发线程数超过5K,我个人建议留出一台做专门的controller机器,主要是避免agent机器数据上报带来的影响(如果有其他的数据存储+可视化服务,可以忽略)。
3、服务授权
如果压测启动和服务配置都是root权限,那么在linux环境下,需要给jmeter和jmeter-server授权,命令为 chmod 777 jmeter ,授权后,显示如下:
二、服务通信
1、网络
所有的压测机和被测服务,最好在同一个网段内,尽可能减少时延问题(如果不在同一个网段,就需要找运维建立专门的网络通道,这个很浪费)。
2、端口
在分布式压测配置时,需要在controller机器的jmeter.properties文件中配置agent机器的IP+端口,默认端口1099,如果该端口没有被占用,则无需配置端口信息,比如:
3、内网和公网
如果压测机在内网,而访问的请求地址(现在都是统一的网关域名)在外网,就要注意一点:内网到公网一般是有带宽限制的,最好在压测开始前和运维确认。
三、数据切割
压测时候需要用到参数化数据,有些业务场景是需要先登录再进行操作的,或者某些数据具有唯一属性。
在分布式压测时候,需要注意,进行均匀的数据切割,确保每个请求的入参请求都是唯一的(可共用的参数不用切割)。
其实,在参数化数据准备阶段,就应该考虑到这个问题,数据的可用性、唯一性以及数量级。
四、服务启动
压测机到位,服务授权配置好了,脚本也写好了,网络也没问题,那么如何在NGUI模式(即linux环境)下启动呢?
1、以服务形式启动agent机
网上很多其他博客都写着利用命令 ./jmeter-server 启动压测服务,但这样有个缺点,只要服务连接中断,这个压测服务就不可用了。
但是以后台服务的形式启动agent机器的jemter-server,就不用担心服务不可用的问题,命令为 nohup sh jmeter-server & ,示意如下:
PS:注意,输入如上命令后,需要回车两次,然后通过命令,即可查看服务是否启动成功。
2、压测启动的2种方式
①、指定压测机启动,命令: ./jmeter -n -t /path/test.jmx -R 127.0.0.1,127.0.0.2
②、启动所有压测机,命令: ./jmeter -n -t /path/test.jmx -r ,示意如下:
3、更多命令
以上,就是jmeter分布式压测相关的一些容易踩坑的地方,仅供参考。。。
jmeter(二十七)分布式压测注意事项的更多相关文章
- jmeter5.1分布式压测
在使用jmeter压测过程中,可能会度遇到内存溢出的错误,这是为什么呢?因为jmeter是java写的应用,java应用jvm堆内存heap受负载机硬件限制,虽然我们可以调整堆内存大小,但是单机无法支 ...
- jmeter进行分布式压测过程与 注意事项
jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对jmeter进行分布式 ...
- JMeter在linux上分布式压测步骤(二)
哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是109 ...
- Jmeter(四十七) - 从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)
1.简介 千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了, ...
- JMeter分布式压测实战(2020年清明假期学习笔记)
一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口 ...
- JMeter——分布式压测
一.Jmeter4.0分布式压测准备工作 压测注意事项 the firewalls on the systems are turned off or correct ports ...
- Jmeter分布式压测实战及踩坑处理(含参数化)
项目中使用Jmeter进行大并发压测时,单机受限内存.CPU.网络IO,会出现服务器压力还没有上 去,但压测服务器由于模拟的压力太大死机的情况.JMeter的集群模式可以让我们将多台机器联合起来 一起 ...
- jmeter 分布式压测(Linux)
之前一篇博文写的是如何在Linux上使用jmeter压测,这篇介绍下Linux上jmeter的分布式压测. 和windows上的分布式类似,需要配置agent节点和控制机 一.Agent节点配置 1. ...
- jmeter 分布式压测(windows)
单台压测机通常会遇到客户端瓶颈,受制于客户机的性能.可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况. ...
随机推荐
- Qemu-4.1 桥接网络设置
参考: [qemu] qemu旧的net参数已经不再可用了,新的这样用. QEMU's new -nic command line option 用Qemu模拟vexpress-a9 --- 配置 q ...
- lua 的匹配规则
匹配规则 .(点): 与任何字符配对 %a: 与任何字母配对 %c: 与任何控制符配对(例如\n) %d: 与任何数字配对 %l: 与任何小写字母配对 %p: 与任何标点(punctuation)配对 ...
- linux的性能调优
单机调优: 分析性能瓶颈的原因,解决它. cpu子系统 内存子系统 IO子系统 网络系统 @cpu子系统调优 cpu技术指标 xeon E5520 2.27GHz 8192kb # c ...
- woocommerce分类页产品数量修改
我们用woocommerce建商城,不同的模板分类页产品数量不同,如果想要显示更多或更少的数量要如何修改呢?很简单,一行代码就能搞定!打开当前主题的function.php文件,加入如下代码,把18改 ...
- 小学四则运算口算练习app---No.2
经过昨天的了解,虽然还是很懵,总要下手摸到鼠标来写第一个页面! 这是一开始设置出体数目和时间的页面,使用者根据提示进行相关设置即可! 代码如下: <?xml version="1.0& ...
- ajax中什么时候进success和error
先简单介绍下ajax: 简单的说Ajax请求通过XMLHttpRequest对象发送请求,该对象有四个状态(readyState): -未初始化.-正在初始化.-发送数据.-正在发送数据.-完成. 当 ...
- 出现 sudo: unable to resolve host XXX 信息解决办法
Ubuntu环境, 每次执行sudo 就出现这个警告讯息:sudo: unable to resolve host XXX虽然sudo 还是可以正常执行,是机器在反解上的问题, 所以就直接从/etc ...
- 用!htrace调试句柄泄漏的一般步骤
Windbg调试器的!htrace扩展对于调试泄漏处理非常方便.该过程基本上可归结为以下简单步骤: 启用跟踪 拍张快照 情景分析 显示差异 在第四步!htrace将在最后一个快照之后显示所有额外打开的 ...
- 关于Exgcd
%%lkx 学习博客 exgcd(扩展欧几里得) 可以用来判断并求解形如\(ax+by=c\)的方程,当且仅当\(gcd(a,b)|c\)时,存在整数解\(x,y\) 也就是说,\(exgcd\)可以 ...
- 洛谷p2827蚯蚓题解
题目 算法标签里的算法什么的都不会啊 什么二叉堆?? qbxt出去学习的时候讲的,一段时间之前做的,现在才写到博客上的 维护3个队列,队列1表示最开始的蚯蚓,队列2表示每一次被切的蚯蚓被分开的较长的那 ...