Jmeter 压力测试笔记(4)--分布式部署
分布式部署:坑,大坑~ 超级坑~~~~
在这里坑了2天,整整2天。其它略过不表下面只写经验:
在linux下,centos7系统 1主 14执行机。 jmeter版本 5.2.1 所有机器在同一个内网。
分布式部署时需要修改的配置:
1,执行机:
在官方下载原始zip包后,修改 bin 目录下:
jmeter.properties 中 文件参数 【 server.rmi.ssl.disable=true】 关闭SSL验证
jmeter-server 文件中 【RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.71.39】 修改IP地址为执行机本身IP---即通过ipconfig或ifcofnig查询得到的地址。 每个执行机都不一样。
2,JDK:尽量使用同一版本JDK。 一般大版本同样基本都行。但不确定。 jmeter 5.2.1配1.8 JDK
3,在目录下创建 ApiTest_CSV;ApiTest_log;ApiTest_Script;目录方便用来执行脚本,保存结果数据。
4:调度机: 调度机的配置要求可以不用太高2C4G一般就够用。
调度机需要修改的配置:
远程执行机IP配置:jmeter.properties 文件中 【remote_hosts=127.0.0.1】 修改ip地址为执行机ip地址。用逗号隔开。
server_port=1099:启用默认端口
如果需要配置其它端口,在ip后面带上 127.0.0.1:1099, 默认端口1099
jmeter.properties 中 文件参数 【 server.rmi.ssl.disable=true】 关闭SSL验证
jmeter-server文件中:RMI_HOST_DEF=-Djava.rmi.server.hostname=127.0.0.1 不进行修改
5:修改执行机使用的JVM内存:
网上有很多修改配置文件的方法,但我不太喜欢用。加上这次压力测试,并没做成持续集成。所以我喜欢使用命令的方式来进行设置:
【JVM_ARGS="-Xms1024m -Xmx3500m" ./jmeter-server】 设置内存为3500M---实际并发时发现大概1个线程会消耗3M的内存(并不通用)。所以具体配置多少内存看你的线程数量。 建议配置的内存大小不超过机器内存总量的一般,否则可能会卡会慢。
这些都配置好以后:在windows上修改好jmx脚本后,就可以放到 调度机上来执行啦~
执行命令:
【jmeter -n -t "/home/tst/ApiTest_Script/move_0406_1200TPS_moreUser.jmx" -l /home/tst/ApiTest_log/0410.csv -r 】 可以加 【&】 符号在后台执行。
停止命令: 在jmeter /bin 目录下 执行 ./stoptest.sh;
强制杀死 ./shutdown.sh
结果显示输出: 异常率高:经过排查,是连接响应超时:在服务器端并未受到这些丢失的请求。具体原因还未排查到。 可能与前端nginx配置有关系。也可能被拒绝了。---(问题已经找到,阿里云服务器开启了独享代理模式,导致NGINX与数据库之间连接同步,使用了长连接模式,导致数据库连接不释放。坑,真坑。)


Jmeter 压力测试笔记(4)--分布式部署的更多相关文章
- jmeter压力测试笔记- HTTP协议
一.目标 使用jmeter进行HTTP接口压力测试: 命令行方式运行,方便在linux环境运行: 二.面临的问题 支持多环境测试(开发.测试.生产环境) 支持用户数据.线程数.循环次数等配置在运行时自 ...
- Jmeter压力测试笔记(6)性能调测-压力并发-模拟生产环境数据
问题原因找到了,那就好办了. 找到阿里云技术人员,让他们强行给我们上架了一个共享代理模式的Redis. 并重新进行压力测试. 哦豁~ 开心,压力测试顺利,异常率大大降低实际为: 数据库DBA反馈,数据 ...
- Jmeter 压力测试笔记(2)--问题定位
事情已经出了,是该想办法解决的时候了. 经过运维和DBA定位: 数据库读写分离中,读库延时超过了30秒,导致所有请求都压在主库.另外所有数据库都连接数都被占满,但活跃请求数量缺不多. 数据库16K的连 ...
- Jmeter 压力测试笔记(3)--脚本调试/签名/cookie/提升吞吐量/降低异常率/提升单机并发性能
import XXXsign.Openapi2sign;---导入jar包中的签名方法 String str1 = "12121"; ---需要被签名的字段:向开发了解需要哪些哪些 ...
- Jmeter压力测试笔记(5)问题原因
压测链路是jmeter=>slb=>nginx => php=>rds 报 Too Many Connections 的原因是前端同时保持了 16000 个连接,达到实例规格的 ...
- Jmeter 压力测试笔记(1)--服务器迁移失败
近期,公司服务器因技术架构升级等原因需要迁移,在经过开发,运维DBA,测试多部门进行联合讨论后,制定出了迁移方案.迁移前也对APP应用进行了各种测试,并没有发现问题. 凌晨2点开始迁移,5点完成迁移. ...
- JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!
JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是t ...
- JMeter压力测试以文件的形式
JMeter压力测试入门教程[图文] 1. 下载JMeter 2. 启动JMeter 3. 运行预准备 4. 运行 文章目录 Apache JMeter是Apache组织开发的基于Java的压力测试工 ...
- jmeter 压力测试
转自: https://blog.csdn.net/cbzcbzcbzcbz/article/details/78023327 Jmeter压力测试简单教程(包括服务器状态监控) 2017年09月18 ...
随机推荐
- docker报错Error response from daemon: driver failed programming external connectivity on endpoint *
服务端 通常会显示 port xxx allocated的,意思就是 xxx 端口被占用了. 如果报port allocated端口占用,就docker ps 查看正使用的镜像,docker kill ...
- cooke和session
一.装饰器要加入funtools.wrap装饰 保留函数的元数据(函数名/注释) 1.装饰器 def wrapper(f): def inner(*args,**kwargs): return f(* ...
- Python基础数据类型2
lst.extend([1,2,3]) # 扩展 --- 迭代添加 整型和布尔值不能迭代print(lst) lst1 = [1,2,3]lst2 = [4,5,6]lst3 = lst1 + lst ...
- 聊聊order by rand()
总结写在前面: 1. 不建议直接使用order by rand(),原因是执行代价比较大 2. 介绍了内存临时表,对于内存临时表,由于回表不需要访问磁盘,所以往往是用rowid排序,可以减少参与排序字 ...
- fatal: I don't handle protocol 'git@http' 解决
新建的git,在git push的时候遇到了报错“fatal: I don't handle protocol 'git@http'” 网上搜这个错误基本都是“fatal: I don't handl ...
- Untargeted lipidomics reveals specific lipid abnormality in nonfunctioning human pituitary adenomas 非靶向脂质组学揭示非功能人类脑垂体瘤中的特异性脂质 (解读人:胡丹丹)
文献名:Untargeted lipidomics reveals specific lipid abnormality in nonfunctioning human pituitary adeno ...
- 用docker搭建selenium grid分布式环境实践之路
最近需要测试zoom视频会议,同时模拟100个人加入会议.经过了解,zoom提供了直接通过url链接加入会议的方式(只能通过chrome浏览器或者FireFox浏览器,因为用的协议是webrtc). ...
- python 清空list的几种方法
本文介绍清空list的四种方法,以及 list=[ ] 和 list.clear() 在使用中的区别(坑). 1.使用clear()方法 lists = [1, 2, 1, 1, 5] lists.c ...
- (原)Non-local Neural Networks
转载请注明出处: 论文: https://arxiv.org/abs/1711.07971 第三方pytorch代码: https://github.com/AlexHex7/Non-local_py ...
- OpenCV-Python BRIEF(二进制的鲁棒独立基本特征) | 四十二
目标 在本章中,我们将看到BRIEF算法的基础知识 理论 我们知道SIFT使用128维矢量作为描述符.由于它使用浮点数,因此基本上需要512个字节.同样,SURF最少也需要256个字节(用于64像素) ...