[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
系统服务
> 详细
使用Jmeter在linux环境实现分布式负载
时间:
2018-11-26 14:55:24
阅读:
235
评论:
0
收藏:
0
[点我收藏+]
分布式意义:在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能
一、Jmeter分布式执行原理
Jmeter分布式测试时,选择其中一台作为调度机(master/Controller),其它机器做为执行机(slave/Agent)
执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的
执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总
分布式测试原理:如下图
二、执行机(slave)配置
slave机上需要安装Jmeter,使用rz命令上传jmeter压缩文件,然后解压
默认一般给的用户不是管理员,则修改用户环境变量即可:vi ~/.bashrc ,在文件末尾添加该行 export PATH=$PATH:/home/mdrsopen/apache-jmeter-4.0-performance/bin ,此路径为jmeter的的路径,修改完毕,输入:wq退出,执行 source?~/.bashrc
输入jmeter -v,出现下图证明配置成功
进入jmeter的bin目录,修改jmeter-server文件,指定主机ip
去掉RMI_HOST_DEF前面的#,末尾的XX改成当前主机ip
可以对负载机端口进行修改,默认为1099,也可以修改成自己需要的端口,修改完毕,输入:wq退出
输入./jmeter-server启动负载机,出现如下界面,证明启动成功
多台slave的话,重复1~5步骤就好
三、调度机(master)配置
脚本:一个devops平台的查询接口
找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口(负载机端口有一台自定义为1234,有一台默认为1099):remote_hosts=10.16.69.174:1234,10.16.18.21:1099
多台slave之前用","隔开,我这配置了2台,可以看到标红的这个就是上面截图slave的IP和Port
打开Jmeter,选择运行,有启动、远程启动、远程全部启动三个选项:
启动:就是启动当前master(调度机),把调度机当负载机单独执行
远程启动:可以选择执行需要的负载机
远程全部启动:顾名思义,就是启动所有的负载机
选择远程启动-->10.16.18.21:1099
master结果,这里我只启动了10.16.18.21:1099这一台slave,所以只有一个结果(线程数和循环次数都是1):
slave控制台信息:
选择远程启动-->远程全部启动:
master结果,全部启动,我配置了2台slave,所以有两次执行结果
四、调度机(slave)使用命令执行分布式测试
widows环境执行
jmeter -n -t 监听设置.jmx -r -l log.jtl
参数说明 :
-n ?告诉jmeter使用非GUI模式执行测试
-t ? 执行的测试脚本名
-r? 远程执行 , 在Jmter.properties文件中指定的所有远程服务器
-l? 结果文件,如果不写路径,则在执行目录生成
linux环境命令相同
五、其它说明:
调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。
执行机(slave)设置的端口,首先要保证未被占用,可以使用该命令进行查询,netstat -anp|grep 端口? 如果查询为空则可以进行配置,如下
查询有值,则代表该端口已经被占用,需要换一个端口
使用Jmeter在linux环境实现分布式负载
原文:http://blog.51cto.com/6183574/2322003
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!