问题:如果要你测一个10W并发,你会怎么做?
关键问题:不是那么简单
错误回答: 做个梯度压测 -- 按时间慢慢加线程!
电脑的承载能力上限的 -- 做性能测试经常会出现,服务器没崩,但是压测机报错了!
2.4 GHZ(标准 CPU) 在 2-3GHz 之间的 CPU jmeter 客户端 最多处理1000-2000 个线程, 还取决于测试类型
单台机器无法处理大量并发,所以需要:分布式压测
通过远程运行 jmeter ,可以在很多低端计算机上复制测试,从而实现更大的负载
分布式是什么?
多台服务器去组成同一个业务的情况
怎么设置?需要注意什么?
主节点和从节点一定要在一个局域网内
有条件的尽量用网线,减少网络带宽的影响
局域网内最好没有太多其他机器 (不是必须条件)
所有的防火墙都必须关闭,你的端口一定记得不要被占用
保证你主节点运行的服务器能够ping 通其他的从节点服务器
确保所有的 jmeter版本是一致的,主节点,从节点用同一个 jmeter
插件保持一致, 如果要做数据驱动 CSV,一律使用相对路径
JDK 大版本一定要保持一致 java -version 大版本号要相同
Jmeter 不分 windows 还是 liunx 版
主节点(控制端)节点配置
找到 jmeter 文件夹下的 bin 目录,找到jmeter.properties
用记事本,或者 notepad++ 打开
找到关键词:remote_hosts ( 第一次找,配置是被注释掉的,所以,去掉前面的 #号)
所有配置文件,修改的时候一定注意:符号一定是英文的,不要有任何空格
配置方式:你准备了几台机器,就写多少个,用英文逗号隔开.
找到关键词: server.rmi.ssl.disable=true
找到关键词 mode=Standard
一定要注意空格问题,一定要注意英文字符问题
这个是主机配置,协作机不要和它一样!
协作机(从节点)配置:
协作机一般配置在 liunx 上,windows 上也可以配置,因为 jmeter 再 windows 和 liunx 是一样的。不要纠结
协作机 jdk 和插件,jmeter 版本必须要与主机一致, 否则有可能访问不同,特别注意!
同样去 liunx 上找到 jmeter 下的 bin 目录,jmeter.properties
如果 liunx 上没有 jmeter 的,可以把 jmeter 打成 ZIP 包上传到liunx 上
用 vi 命令打开,编辑 从节点只做端口 和 SSL 配置
找到关键词 server_port (这个 port 和我们在主节点配置的 port 一致)
找到关键词 server.rmi.port 也要与你的主节点保持一致
找到关键词 server.rmi.ssl.disable
注意,这几个文件也都是被注释的,自己去找一找
开始分布式测试:
当你部署完毕后,可以直接采用命令执行 ,启动从节点
./jmeter-server
注意:这个命令一定要到 jmeter 的 bin 目录下去执行
看到如下字符,就表示启动成功
回到主机,打开 jmeter
如果非要让主节点运行,需要在配置文件中写明 127.0.0.1 ,然后在 windows 中启动 jmeter-server.bat(不推荐)
分布式测试,不是简单的相加这样的操作 ,实际是 : 主节点设置了 3000 线程 ,如果我有 3 台从节点去测试。一般是按情况会平均分配过去的!也就是说 一台从节点 1000 左右的线程!
每个执行节点,只处理主节点分配过去的线程数.
高级用法 -- 用 -J 参数来传递属性 控制数量
jmeter -n -t xx.jmx -l results.jtl -JnumThreads=1000 -JnumThreads=2000
这种强行分配,就会引发一个问题,图表这些东西无法看到了。 这种情况下,我们需要有另外的监控体系来处理!
评论区