多台VPS进行Jmeter分布式压力测试
来源:互联网 发布:javascript写网页 编辑:程序博客网 时间:2024/05/01 08:57
最近想研究下Jmeter的分布式测试,于是在Linode云主机上折腾了下,此厂商的主机可以自选硬件配置,收费按照小时计算,所以操作的时候可要手快啊。
一、环境信息
1. 被测服务器
日本Linode VPS主机
- CPU core num = 16
- mem = 65536MB
- Disk size = 1152GB
- IP address = peloo.net
2. Jmeter主控制机
美国Linode VPS主机
- mem = 2048MB
- CPU core num = 1
- Disk size = 30GB
- IP address = 173.255.243.59
3. Jmeter从机
配置同主控制机,位置同在美国,属于同一个机房
- IP address = 173.255.220.37 & 173.255.223.112
大致如下图:
二、环境配置
1. 被测服务器
被测服务器上搭建了WordPress网站,架构为 OpenResty + PHP + MySQL
2. Jmeter主控制机配置
下载官网jmeter tgz文件到tmp目录并解压
wget -c -P /tmp http://mirrors.cnnic.cn/apache/jmeter/binaries/apache-jmeter-3.1.tgzcd /tmptar zxvf apache-jmeter-3.1.tgz
复制解压目录到/usr/local
cp -rv /tmp/apache-jmeter-3.1 /usr/localln -sv /usr/local/apache-jmeter-3.1 /usr/local/jmeter
添加jmeter环境变量 vi /etc/profile
增加:
JMETER=/usr/local/jmeter/apache-jmeter-3.1CLASSPATH=$CLASSPATH:$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jarPATH=$PATH:$JMETER/bin
使修改生效
source /etc/profile
Jmeter -v查看是否设置成功
在Jmeter目录创建testplan testresult子目录
关闭防火墙
service iptables stop
rz上传jmx脚本到testplan下
若有host进入/etc/hosts 加入自己的host配置
hosts文件的作用相当如DNS,提供IP地址到hostname的对应,Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录
//查看当前host hostname (实际与执行脚本使用的host无关,该命令返回的host是系统启动时就一直不变的,若要修改,需要修改以后重启服务器才会永久生效)
vim /etc/sysconfig/network 系统网络配置文件 –需要重启生效,永久性修改。hostname是Linux系统下的一个内核参数,它保存在/proc/sys/kernel/hostname下,但是它的值是Linux启动时从rc.sysinit读取的。而/etc/rc.d/rc.sysinit中HOSTNAME的取值来自与/etc/sysconfig/network下的HOSTNAME
/etc/init.d/network restart ##修改网络配置文件后重启网络
执行脚本并生成聚合报告(在jmeter目录下能够看到jmeter.log或者在testplan目录下,自行寻找,通过日志可以看到出错的地方)
jmeter -n -t testplan/comic.jmx -l testResult/result1.jtl
-n 表示以nogui方式运行测试计划
-t 表示测试计划,后面跟测试计划名称
-l 表示测试结果,后面跟测试结果文件名称
sz导出聚合报告,在windows下打开可查看结果
3. Jmeter从机配置
VPS厂商管理后台克隆两台jmeter主控机即可,且关闭iptables防火墙
service iptables stop
三、分布式测试
1. 在控制机上修改bin/jmeter.properties,添加从机的IP及端口(使用-r启动所有从机)1099是默认的rmi通信端口
Remote Hosts – comma delimitedremote_hosts=173.255.220.37:1099,173.255.223.112:1099
2. 开启执行脚本机器上的server服务
/usr/local/jmeter/bin/jmeter-server &
3. 在控制机执行分布式命令,两个都可
jmeter -n -t testplan/comic.jmx -R 10.15.243.53,10.15.230.78 -l testResult/result1.jtl #指定从机IPjmeter -n -t testplan/comic.jmx -r -l testResult/result1.jtl #启动所有从机执行脚本
主控机测试结果展示:
实际上,分布式Jmeter测试的从机不是越多越好,因为从机越多,和控制机的数据交互就越频繁,网络带宽可能成为瓶颈,测试不准确。
如果想实现大数量级的并发,可以在Jmeter源码上进行改造。
- 多台VPS进行Jmeter分布式压力测试
- linux使用JMETER进行分布式压力测试
- JMETER:linux进行分布式压力测试
- Jmeter分布式压力测试
- jmeter进行分布式测试
- Apache JMeter压力测试之分布式测试(多机联测)
- 使用JMeter进行压力测试
- 使用jmeter进行压力测试
- 用Jmeter进行压力测试
- jmeter进行接口压力测试
- 用Jmeter进行压力测试
- 使用Jmeter进行压力测试
- jmeter进行websocket压力测试
- jmeter 使用分布式压力测试配置
- jmeter远程分布式压力测试配置
- 如何利用Jmeter做分布式压力测试?
- Jmeter进行分布式性能测试
- 使用TSung使用多台电脑进行协同压力测试
- 浅谈引用<二> Java中引用的分类
- Android WebView调试利器之 Chrome DevTools
- 10032---Redis中bitmap的妙用
- sqlite3数据库函数
- hello !java...
- 多台VPS进行Jmeter分布式压力测试
- SPFA以及其优化
- 利用Boost.Python将C++代码封装为Python模块
- 使用高德地图的api获取所在城市
- 浅谈引用<三> C++中指针和引用的区别
- UVALive 7146-贪心&数据结构stl-Defeat the Enemy
- 二叉树实现机制
- HDU6073-Matching In Multiplication
- leetcode[Construct the Rectangle]//待整理多种解法