问题:如果要你测一个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
这种强行分配,就会引发一个问题,图表这些东西无法看到了。 这种情况下,我们需要有另外的监控体系来处理!
评论区