JMeter分布式压测环境搭建

平板电脑支撑架JMeter分布式压测环境搭建
⼀、JMeter分布式压测介绍
在⼯作中使⽤jmeter做⼤并发压⼒测试的场景下,单机受限内存、CPU、⽹络IO,会出现服务器压⼒还没有上去,但是压测服务器已经由于模拟的压⼒太⼤死机了。为了让jmeter⼯具提供更强⼤的负载能⼒,jmeter提供了多台机器同时产⽣负载的机制,下⾯是架构图。
⼆、JMeter分布式压测环境搭建
1.Windows搭建JMeter作为Master
2.Linux搭建JMeter作为Slave
步骤1:下载并将Jmeter安装到/opt⽬录下,命令如下:
cd /opt
wget mirrors.shu.edu/apache//jmeter/binaries/apache-jmeter-5.0.zip
unzip apache-jmeter-5.0.zip -d /opt
ln -snf apache-jmeter-5.0 jmeter
步骤2:配置启动脚本,将如下内容存放到⽬录/etc/init.d/下的jmeter-slave⽂件,并赋予执⾏权限。
#!/bin/bash
# @author radiomen
# chkconfig: 345 26 74
# description: jmeter slave
# 定义显⽰颜⾊
RED='\e[1;91m'
GREEN='\e[1;92m'
WITE='\e[1;97m'
NC='\e[0m'
MY_IP=""
模压制品
function get_system_ip()
{
SYSTEM_VERSION=$(cat /etc/redhat-release | grep -o -E '[0-9]+\.[0-9]+')
# 判断是否是centos操作系统的版本
if [[ $SYSTEM_VERSION == 7\.* ]];then
耙式浓缩机ifconfig ens33 >/dev/null 2>&1
if [ $? -eq 0 ];then
MY_IP=$(ifconfig ens33 | grep 'inet ' | awk '{print $2}')微型汽油机
else
MY_IP=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
MY_IP=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
fi
else
ifconfig eth0 >/dev/null 2>&1
if [ $? -eq 0 ];then
MY_IP=$(ifconfig eth0 | grep 'inet addr:' | awk '{print $2}' | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')
else
MY_IP=$(ifconfig ens33 | grep 'inet addr:' | awk '{print $2}' | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')
fi
fi
}
function start()
{
FLAG=$(ps -ef | grep '/opt/jmeter/bin/' | grep -v 'grep' | wc -l)
if [ $FLAG -eq 0 ];then
echo "Start jmeter server!"
get_system_ip
/opt/jmeter/bin/jmeter-server -i.server.hostname=$MY_IP &
echo -e $GREEN"Start jmeter server successed!"$NC
else
echo -e $RED"Jmeter server is already start!"$NC
fi特种设备检验检测人员管理系统
}
function stop()
{
FLAG=$(ps -ef | grep '/opt/jmeter/bin/' | grep -v 'grep' | wc -l)
if [ $FLAG -eq 0 ];then
echo -e $RED"Jmeter server not starte!"$NC
else
echo "Stop jmeter server!"
kill -9 $(ps -ef | grep 'jmeter' | grep -v grep | awk '{print $2}') && echo -e $GREEN"Stop jmeter server successed!"$NC  fi
}
function restart()
{
FLAG=$(ps -ef | grep '/opt/jmeter/bin/' | grep -v 'grep' | wc -l)
if [ $FLAG -eq 0 ];then
start
智慧珠拼盘else
stop
sleep 2
start
fi
}
case $1 in
'start')
start;;
'stop')
stop;;
'restart')
restart;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
步骤3:启动jmeter slave服务,验证是否监听1099端⼝,命令如下:
/etc/init.d/jmeter-slave start
netstat -ntlp | grep '1099'
3.分布式环境配置
步骤1:确保Master和Slave安装正确。
步骤2:Slave启动,并监听1099端⼝。
步骤3:在Master机器的jmeter安装⽬录下bin⽬录下,到properties⽂件,修改远程主机选项,添加2个Slave服务器的地址。
步骤4:启动jmeter Master,多⽹卡模式需要指定IP地址启动
jmeter -i.server.hostname=192.168.1.77
步骤5:验证分布式环境是否搭建成功
1)jmeter启动之后在如下选项中,会出现你添加的远程主机列表
2)打开⼀个仅有⼀个http请求的脚本,【运⾏】-【远程全部启动】,执⾏完成,进⼊【聚合报告】中查看发现有两个HTTP请求说明环境搭建成功。
4.注意事项
1)如果使⽤csv进⾏参数化,需要把参数⽂件在每台Slave上拷贝⼀份,最好都放置在bin⽬录下,因为Jmeter会直接从bin⽬录下查;2)slave机器执⾏脚本时,若断⾔执⾏成功则在master机器上是看不到请求响应数据的,只有在断⾔出错时才可见slave的返回;
三、FAQ
Q:远程启动,若出现错误提⽰:no such object in table
R:
S:删除配置中的端⼝即可
Q:JMeter分布式压测,连接Slave机器出现如下报错:
R:Slave机器防⽕墙开启,导致Master机器连接Slave机器连接失败。
S:检查slave机器的防⽕墙是否开启

本文发布于:2024-09-22 13:37:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/249111.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:机器   启动   分布式   搭建   压测   环境   连接   远程
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议