51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2770|回复: 1
打印 上一主题 下一主题

[原创] jmeter分布式压测配置和举例说明,提升并发量,可收藏

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-9-11 08:14:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


问题背景
当有些项目的用户数比较大的时候,我们进行压测的时候也需要较大的并发,而单台服务器的能够发送的并发量毕竟是有限的,那如何增加并发量呢?

解决方法
利用jmeter的分布式压测,jmeter为了提升并发量,支持分布式压测,1台master,多台salve,一般来说,master只做统计收集、下发脚本的工作,而不作为施压机,主要是出于性能考虑。
Linux下安装jmeter简单,直接把jmeter上传到Linux服务器(服务器上只需要安装好java即可)。进入apache-jmeter的bin目录下,更改jmeter为可执行权限。即安装成功。
在其他多台机器上按照同样的方法部署好jmeter。


举例说明
下面具体举例说明,高级的jmeter用法或者性能测试技巧,可以参考jmeter和Jenkins的自动化性能测试高级用法
现在假设,压力机共4台,10.151.71.185、10.151.71.186、10.151.71.187、10.151.71.192
其中10.151.71.185同时作为master,其他3台只做slaver。

1、在作为slaver的机器上运行jmeter-server;
上面4台按照安装的步骤,同时把jmeter安装在同一个目录/home后,进入bin目录,修改3台slaver机器下的jmeter-server为可执行,并执行./jmeter-server。执行成功后显示如下:


2、上传压测脚本和外部读取的csv文件;
只需要上传UDPtest.jmx脚本到master服务器,节点机不需要上传,压测脚本自动会发到slaver试压机上;但是,如果脚本中涉及从外部读取的csv文件,那该文件就需要上传到各个slaver施压机上。
3、在master机器上修改remote_hosts;
进入到master 185这台服务器的jmeter的bin目录下,修改jmeter.properties。修改如下,添加各个slaver节点机的ip,默认通信端口为1099;


上述方法是写死了各个slaver机器ip到配置文件中,若想动态的挑选其中部分压测机,可以采用命令行选项的方式,即在master机器运行命令的时候添加 -R ip:port,ip:port的方法;
4、在master 运行脚本;
发起压测,在master机器上进入jmeter的bin目录下,执行如下命令:./jmeter –n –r –t /home/UDPtest.jmx
要提前结束需要ctrl+c,若要重新启动分布式压测,需要在各个slaver上启动./jmeter-server。然后再master上重新执行步骤4即可。

【友情提示】:
A、若是脚本中设置的并发线程数是100,采用3台slaver机器去施加压力,那么对于服务端来说,此时的并发线程数是300。
B、为了减少出错的可能性,最好按照如下Jmeter 分布式要求:
1、各个机器在相同目录下安装相同版本的jdk;
2、各个机器在相同的目录下安装相同版本的jmeter;
3、配置/etc/hosts的IP和hostname的映射。
4、修改各个机器的jmeter的默认内存参数,从512m调整为合适大小。
以上就是jmeter的分布式压测的实践中具体配置和小结提示,大家可以收藏,更多内容可以关注公众号大话性能,继续学习。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2018-9-12 10:19:30 | 只看该作者
内附一些注意事项,避免踩坑
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-25 08:24 , Processed in 0.072090 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表