设为首页 收藏本站
查看: 1520|回复: 1

[经验分享] Jmeter 分布式测试环境搭建 on Centos

[复制链接]

尚未签到

发表于 2017-11-15 11:06:07 | 显示全部楼层 |阅读模式
  http://www.jianshu.com/p/536ffb953749
  http://www.cnblogs.com/lzlfighter/p/6706952.html


  Jmeter分布式执行原理:
  1、Jmeter分布式测试时,选择其中一台作为调度机(master/Controller),其它机器做为执行机(slave/Agent)。

2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,应该是通过non-gui命令行模式执行的。

3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
  注意:

(1)每一台jmeter远程服务器(slave机器)都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划,所以根据木桶原理,性能最差的slave可能会影响测试;

(2)采用JMeter远程模式并不会比独立运行相同数目的非GUI 测试更耗费资源。但是,如果使用大量的JMeter 远程服务器,可能会导致客户端过载,或者网络连接发生拥塞;

(3)默认情况下,master机器是不执行参与生成并发数据的;

(4)调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以master自身会有消耗,所以建议单独用一台机器作为master。
  这些简介都是从其他童鞋那里抄的,之前在网上找文档的时候,发现都是windows作为master,本文主要share Centos 的机器搭建的过程,下面是具体的步骤:


  • 配置安装Java & Jmeter
  • 配置 slave
  • 配置 master
  • non-gui 下,run Jmeter 脚本

  • 配置安装Java & Jmeter
  安装Java,自己找文档去吧,我用的是1.8



DSC0000.jpg


1.png  安装Jmeter

Jmeter帮助文档:http://jmeter.apache.org/usermanual/index.html

Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi



DSC0001.jpg


image.png  进入到自己的目录(/home/username)
  这里要配置环境变量,因为公司Centos设置,一般测试账号拿不到root 权限,于是把环境变量设置在 /home/username/.bashrc里面,



DSC0002.jpg


image.png  export JMETER_HOME=/home/langzm/apache-jmeter-3.2

export JAVA_HOME=/opt/java/jdk1.8.0_91

export JAVA_BIN=/opt/java/jdk1.8.0_91/bin

export PATH=$PATH:$JAVA_HOME/bin:$JMETER_HOME/bin
  配置以后,执行source ~/.bashrc   或者 source /home/username/.bashrc,在哪儿执行都没有问题。

安装成功的标志:



DSC0003.jpg


image.png

  • 配置slave

    在配置安装完 Java 和 Jmeter 后,我们要配置两个地方,slave 的IP和端口。
  分别在s1、s2、s3(slave机器)上,进入%JMETER HOME%/bin/目录,

打开“jmeter.properties”,配置执行机远程启动端口(默认为 1099),

如改为:

server_port=1099

server.rmi.localport=1099
  打开“jmeter-server”,配置执行机远程启动IP

如改为:

DIRNAME=dirname $0

RMI_HOST_DEF=-Djava.rmi.server.hostname=10.31.121.115
  启动slave server:



DSC0004.jpg


image.png

Using local port: 1099

Created remote object: UnicastServerRef [liveRef: [endpoint:10.31.121.115:1099,objID:[-19017b68:15d1c7583bc:-7fff, -5417132512864584786]]]  之前没有配置1099端口和IP,造成如下情况:



DSC0005.jpg


image.png
  后果是master 连不上slave,没有starting ...连接成功的log。


  • 配置master

    在配置安装完 Java 和 Jmeter 后,进入%JMETER HOME%/bin/目录,

    编辑 jmeter.properties 这个文件,修改添加:

    remote_hosts=172.16.129.155:1099,172.16.129.43:1099

    (slave的IP)

    server_port=1099

    client.rmi.localport=0

    server.rmi.port=1234

    server.rmi.localport=1099
  进入%JMETER HOME%/bin/目录,编辑 jmeter.bat这个文件,修改添加:

set rmi_host=-Djava.rmi.server.hostname=本机ip(控制器ip)

Set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%


  • non-gui 下,run Jmeter 脚本
  参考文档:

http://www.cnblogs.com/fengpingfan/p/5586711.html

这个可以推荐看一下,我就硬搬过来了,
  先附上参数表:



DSC0006.jpg


image.png  Demo 1:执行最简单的Jmeter例子
  自己写个test job,里面只访问百度,然后把job 放到master 上面去跑;




DSC0007.jpg


image.png  baidu.jmx 配置好后,copy到master;



DSC0008.jpg


image.png  command:

jmeter -n -t baidu.jmx
  Demo 2:指定Jmeter结果文件及日志路径
  Demo 3:分布式(远程)执行默认服务器列表
  Demo 4:分布式(远程)执行执行服务器列表
  Demo 5:多个分布式(远程)执行执行服务器
  jmeter -n -t /home/langzm/apache-jmeter-3.2/testcase/demo_500.jmx -R 11.71.161.115:1099,11.27.221.182:1099,11.81.198.142:1099 -l /home/langzm/apache-jmeter-3.2/result/demo_1500QPS_3.csv
  待续。。。



========================================================
  在进行性能测试的时候,随着压力的不断增大,会出现tps的瓶颈。
  出现瓶颈,会有两个原因,1.服务器导致的瓶颈 ,2压力不够。
  如果是压力不够的情况,要么换更好的机器进行压测,或者多台机器进行分布式压测。
  Jmeter 如何开展分布式?
  原理如下:
  1.Jmeter分布式压测时,一台机器作为master,其他的则为slave,master负责请求的分发,slave负责执行。
  2.执行时,master会把脚本发送到每台slaver上,slaver 拿到脚本后就开始执行,slaver执行时不需要启动GUI,如果引用到csv等外部的文件,则每台slaver所在的机器都需要相应位置放置该文件。
  3.执行完成后,slaver会把结果回传给master,master会收集所有slaver的信息并汇总。
  这里有一个坑,如果slave 和master是多网卡的机器,master去slave执行的时候,会把网卡中的任意一个网卡ip传过去,最后slave执行完后,把结果回传给master,如果这时回传给master是一个错误的ip,则会导致请求超时的情况,导致失败。
  正确步骤如下:
  1.启动slave,在slave机中jmeter-server中
  windows 修改RMI_HOST_DEF=-Djava.rmi.server.hostname=10.120.11.82(slave机的ip)
  运行jmeter-server,Windows运行jmeter-serve.bat
  linux:
  ./jmeter-server -Djava.rmi.server.hostname=10.120.11.82(slave机的ip)
  2.启动master
  双网卡需要注意:master机需要指定自己机器的ip,要不则会出问题。
  window:
  新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214(master 的ip)
  修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
  linux:
  新增 rmi_host=“-Djava.rmi.server.hostname=10.120.11.214”(master 的ip)
  修改ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $PERM $CLASS_UNLOAD $rmi_host"
  修改完了后,开始压力测试:
  windows:
  修改jmeter.properties,
  remote_hosts=10.120.11.82:1099(更换为slave的ip)
  远程启动这台机器
  linux:
  ./jmeter -n -t testPlan.jmx  -R 115.28.108.130 -l remote.jtl
  linux下运行结果存在remote.jtl中。
  注意:master和slave机中的jmeter版本必须一致(小版本也得一致)。
  java的版本也得一致,不能一个java7一个java8.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407191-1-1.html 上篇帖子: CentOS 7 安装Docker CE 下篇帖子: centos使用--centos7.3配置LNMP
累计签到:115 天
连续签到:1 天
发表于 2017-11-15 11:58:20 | 显示全部楼层
111111111111111111

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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