jmeter分布式压测 java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
解决办法:
1.控制机和代理机:修改jmeter.properties中server.rmi.ssl.disable=true 不启动SSL
2.控制机和代理机: Slave(从压力机)启动jmeter-server时添加-Djava.rmi.server.hostname参数,即
./jmeter-server -Djava.rmi.server.hostname=从压力机ip地址(linux下)
jmeter-server -Djava.rmi.server.hostname=从压力机ip地址(windows)
https://www.cnblogs.com/suntingme/p/5995721.html
一、背景:
- 之前在Jmeter插件监控服务器性能一篇中说到,在非GUI环境中监控时为了保存监控数据需要修改jmeter脚本,并且每次通过施压机(远程服务器,非GUI环境)来压测时都要将jmeter脚本上传然后在服务器上通过命令行启动,测试完成后再把结果数据下载到本地GUI环境中查看,总是有很多不方便。
- 本次压测需求需要很大的并发量,例如3000,但是单台施压机难以实现,因此希望多台施压机并行,并且我能同步控制它们。
- 在这样的需求下经过了解,jmeter工具本身有一个很强大的远程启动功能,于是尝试了一下。
二、jmeter分布式原理
这个远程启动,网上说的高大上一点,就是jmeter的分布式控制~ 具体控制如下图:
- 客户端机器作为一个控制器controller,控制多台slave机器的操作。
- controller通过GUI界面启动slave机器,将jmeter压测发送给每台启动的slave,slave获得脚本后开始执行。slave本地不需预先存储脚本;
各台slave执行完成后,将结果传回给controller,controller收集整合显示。
三、jmeter远程启动配置
服务器(slave)配置
- 服务器(slave)需安装jmeter,最好与客户端(controller)保持同版本,jdk最好也保持同版本,无法满足时至少保证服务器上的jmeter能正常运行(如jmeter3.0以后需要jdk1.7及以上版本)。
在slave的%JMETER_HOME%bin目录下执行./jmeter-server命令启动jmeter服务就可以,启动成功如下图:
注意:上图红框中的ip为服务器的ip地址,当服务器有多网卡时它会随机挑选一个网卡使用,红框中的端口号port为启动jmeter服务监听的port,一般会有个默认端口号1099,但最好自定义,确保端口号不冲突。修改方法在下文介绍。
客户端(controller)配置
- 在客户端上要保证执行命令能发送到服务器,因此需配置客户端远程的ip地址和port。在客户端安装目录的bin文件夹下,找到jmeter.properties,修改配置如下图,其中ip和port即为上一步slave的ip和port,如上图中jmeter-server启动时红框中显示的内容。多个slave机器的配置可通过逗号分隔。
remote_hosts=10.165.124.6:1029
配置完成后打开客户端jmeter的GUI界面,在运行-远程启动中即可看到自己配置的slave机器。
添加一个脚本,点击远程启动即可启动运行slave机器,此时在服务器上可看到控制台信息,在客户端通过监听器-聚合报告或察看结果数可看到执行结果。
四、问题
slave机器的自定义端口号配置
- 在slave机器的%JMETER_HOME%bin目录下找到jmeter.properties,修改如下两项配置,即可自定义端口号:
server_port=1029
server.rmi.localport=1029
- 修改后执行服务端的jmeter-server即可看到控制台消息中修改是否生效;修改生效后需在客户端修改相应的jmeter.properties下的remote_hosts。
slave机器和客服端多网卡的问题
- 我在执行过程中slave机器的jmeter-server.log和客户端的jmeter.log中均报错提示connect refused。经过检查后发现服务器上有2个网卡,客户端有两个网卡,两台机器通过vpn在内网环境通信。而jmeter在远程通信的时候是随机选择一个网卡的ip,这样很容易导致连接不成功。
- 可通过如下配置指定服务器和客户端的网卡,在服务器端的jmeter-server文件中,修改配置指定服务器端的网卡ip
RMI_HOST_DEF=-Djava.rmi.server.hostname=10.165.124.6
在客户端的jmeter.bat中修改配置指定客户端的网卡ip
增加配置项:set rmi_host=-Djava.rmi.server.hostname=10.165.120.4
修改配置项:set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %CLASS_UNLOAD% %DDRAW% %rmi_host%
- 在修改配置后尝试远程启动,发现还是不成功,打开客户端jmeter.log,发现客户端发送成功;打开服务器端的jmeter-server.log显示服务器连接客户端不成功,尝试ping了一下也确实ping不通,然后网上搜了一下说是因为客户端的防火墙阻止了,关闭客户端所有防火墙,再次执行,测试成功。
依赖文件报错的问题
- 当jmeter脚本中需要依赖csv等数据文件时,该文件需上传至服务器,并需要设置正确的路径。
jmeter分布式压测 java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)的更多相关文章
- jmeter 启动jmeter-server.bat远程调用报错: java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
1.找到apache-jmeter-5.0\bin\jmeter.properties 2.修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disa ...
- java.io.FileNotFoundException: generatorConfig.xml (系统找不到指定的文件。)
在使用MyBatis的逆向工程生成代码时,一直报错java.io.FileNotFoundException: generatorConfig.xml (系统找不到指定的文件.),如图 文件结构如下: ...
- java.io.FileNotFoundException:SESSIONS.ser (系统找不到指定的路径。)
问题如下: java.io.FileNotFoundException: E:\apache-tomcat-8.0.37\work\Catalina\localhost\20161013Shoppin ...
- java.lang.SecurityException: java.lang.IllegalStateException: java.io.FileNotFoundException:XXXXXX(系统找不到指定文件)
项目启动成功过,但访问页面抛出异常. 在Maven项目启动的时候,tomcat缓存机制没有吧maven jar除外的jar执行到项目里面,所有不要慌,项目重新启动就OK了, 如果这样还是不行的话就找到 ...
- java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)(转)
Caused by: java.io.FileNotFoundException: rmi_keystore.jks (没有那个文件或目录) 解决方法:修改jmeter.properites: ser ...
- jmeter linux分布式压测Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks
在路径\apache-jmeter-5.0\bin下启动jmeter-server.bat时抛出了如下异常: 1.jmeter 1099端口 被占用,修改端口号 使用netstat -lntp|gre ...
- Jmeter启动jmeter-server.bat 报java.io.FileNotFoundException:rmi_keystore.jks 解决方法
解决方法:1.找到apache-jmeter-5.0\bin\jmeter.properties 2.修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl ...
- Caused by: java.io.FileNotFoundException: rmi_keystore.jks (没有那个文件或目录)
解决方法:修改jmeter.properites: server.rmi.ssl.disable=true,关闭ssl功能 参考: https://blog.csdn.net/nielinqi520/ ...
- Jmeter分布式压测实战及踩坑处理(含参数化)
项目中使用Jmeter进行大并发压测时,单机受限内存.CPU.网络IO,会出现服务器压力还没有上 去,但压测服务器由于模拟的压力太大死机的情况.JMeter的集群模式可以让我们将多台机器联合起来 一起 ...
随机推荐
- systemd 相关及服务启动失败原因
1 查看启用的units systemctl list-unit-files | grep enabled 2 查看指定服务的日志 按服务单元过滤 journalctl -u j 查看j.serv ...
- Centos修改默认运行级别
一.centos默认运行级别 下面是linux的默认运行级别.vim /etc/inittab即可查看. # Default runlevel. The runlevels used are: # - ...
- 生成keystore
Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份,可以使用JRE环境中的keytool命令生成.以下是windows平台生成证书的方法: 安 ...
- Thymeleaf静态资源引入方式及公共页面代码抽取
静态资源引入 Thymeleaf模板引擎url问题,要用如下的方式写,确保在任何情况下都能访问到 <!-- Bootstrap core CSS --> <link href=&qu ...
- Gparted for partition of Linux on graphic interface
You can change the partition table on Linux by a group of tools, which is tool comprehansive for a n ...
- Linux内核设计与实现 总结笔记(第十五章)进程地址空间
一.地址空间 进程地址空间由进程可寻址的虚拟内存组成,内核允许进程使用这种虚拟内存中的地址. 每个进程都有一个32位或64位的平坦地址空间,空间的具体大小取决于体系结构.“平坦”指的是地址空间范围是一 ...
- POJ 2385 Apple Catching ( 经典DP )
题意 : 有两颗苹果树,在 1~T 的时间内会有两颗中的其中一颗落下一颗苹果,一头奶牛想要获取最多的苹果,但是它能够在树间转移的次数为 W 且奶牛一开始是在第一颗树下,请编程算出最多的奶牛获得的苹果数 ...
- 基于Nginx的https服务
1.HTTPS协议的实现 1.为什么需要HTTPS? 原因:HTTP不安全 1.传输数据被中间人盗用.信息泄露 2.数据内容劫持.篡改 对传输内容进行加密以及身份验证 2.对称加密 非对称加密 3.H ...
- Internet History, Technology, and Security(week3)——History: The Web Makes it Easy to Use
前言: 上周学习了第一个网络NSFnet,美国国家科学基金会(National Science Foundation,简称NSF)在全美国建立了6个超级计算机中心所互联的一个网络,这周继续学习网络的发 ...
- python中的实例属性和类属性
在python中,类属性和实例属性的区别是什么? 我认为是作用域的不同,实例对象可以访问类属性,类对象不可以访问实例属性.(类的概念本身就是作用域的概念,你不能让一只猫会飞,猫属于猫类,这一类都不会飞 ...