【问题标题】:Jmeter linux shell cannot start serverJmeter linux shell无法启动服务器
【发布时间】:2018-08-10 10:03:33
【问题描述】:

情况:

我在本地 Linux 服务器上安装了Jasper Reports Library (V6.5.1),它生成 PDF 报告(数据转储到报告引擎的临时 Oracle DB 表中)。

然后它将这个 PDF 提供给我开始该过程的网站。

目标:

安装 Jmeter 以分析本地 linux 服务器上“Jasper Reports Library”(又名报告生成)的性能/可能的瓶颈(我无法通过 GUI 访问此服务器,只能通过 shell)。

我知道我必须将我的本地 Windows 10 机器(运行相同的 Jmeter 4.0)连接到这个本地服务器。在服务器上,我必须启动 Jmeter 4.0 服务器(通过 jmeter-server 命令)但是我收到错误并卡住了(不幸的是,没有在网上找到任何东西,甚至没有找到相同目标的人......)

我已采取的步骤:

  • here下载最新的(4.0)bin
  • 在 /opt/dlins/apache-jmeter-4.0bin 中的本地 linux 服务器上提取
  • 尝试使用 /usr/lib/jvm/jdk1.8.0_102/bin/java jmeter-server 启动服务器(默认的 java 版本是 6,因此我可以使用 java 8 运行这个应用程序)-Instructions found here

-> 出现错误:“错误:无法找到或加载主类 jmeter-server”

感谢您对上述任何工具的帮助,甚至您可能使用的任何其他工具(也许有更好的方法来测试上述场景的性能)

【问题讨论】:

  • 只调用jmeter-server会出现什么错误?

标签: java jmeter performance-testing


【解决方案1】:

有2个方面与您的问题和屏幕截图有关:

1) 使用 java 8 而不是 6 - 这可以通过多种方式完成,具体取决于您的需求和限制,例如需要 Java 6 全局可用于其他应用程序并使用 8只是为了运行 JMeter,或者完全用 8 替换 6。为简洁起见,我将假设第一种情况,但两者都有可用的文档,并且 Dmitri T 已经部分解释了它。

无论如何,您使用的相同JMeter doc link 描述(只需向下滚动几次)如何在bin 目录中创建setenv.sh 脚本并根据您的需要配置JAVA_HOMEJRE_HOME

要永久设置这些变量,您可以将它们放在 bin 目录中名为 setenv.sh 的文件中。该文件将在运行 JMeter 时通过调用 jmeter 脚本获取。

您似乎想要一个 JDK,所以创建脚本并在 JAVA_HOME=/usr/lib/jvm/jdk1.8.0_102 中添加,保存并退出。

2) 运行 JMeter - 为了澄清一个小困惑,java MyCompiledClass 指示 java 使用在 MyCompiledClass 中定义的 load and execute the "program",这不是您想要做的,因为 jmeter-server 是一个外壳脚本。如果你打开它,你会看到它调用了jmeter shell 脚本,它会做一些配置,最终调用(简而言之)java -jar ApacheJMeter.jar 并带有一些参数和选项。

因此,要运行 JMeter,请确保您的脚本可以使用 chmod 执行,并且只需从命令行 ./jmeter-server 运行即可。来自同一链接:

Un*x 脚本文件;应该适用于大多数 Linux/Unix 系统:

jmeter - 运行 JMeter(默认在 GUI 模式下)。定义一些可能不适用于所有 JVM 的 JVM 设置。

jmeter-server - 在服务器模式下启动 JMeter(使用适当的参数调用 jmeter 脚本)

jmeter.sh - 非常基本的 JMeter 脚本(您可能需要调整 JVM 选项,例如内存设置)。

mirror-server.sh - 在非 GUI 模式下运行 JMeter 镜像服务器

shutdown.sh - 运行 Shutdown 客户端以优雅地停止非 GUI 实例

stoptest.sh - 运行 Shutdown 客户端以突然停止非 GUI 实例

【讨论】:

  • 谢谢。启动 jmeter-server 并将 JAVA_HOME 配置设置为 Java 8 不再引发类错误。为了解决以下错误,我在 jmeter-server 文件 "RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.10.132" "SERVER_PORT=60000 jmeter-server" -> 现在当我启动 jmeter-server 服务器时添加了以下条目冻结”(shell 中没有反馈),我必须重新启动服务器
  • 不清楚你做了什么,但必须对两台机器进行配置才能进行服务器-客户端分布式/远程测试。您可以参考documentation 进行分步配置。
  • 好吧,我现在让 jmeter-server 在 Linux 上执行,但是“netstat -a | grep 1099”什么也没返回……会开一张新票,因为这似乎是一个新问题。跨度>
【解决方案2】:
  1. 修改您的 PATH environment variable,以便 Java 8 的 bin 将 Java 6 的 bin 之前,例如:

    PATH=/usr/lib/jvm/jdk1.8.0_102/bin:$PATH && export PATH
    
  2. 完成后,您应该能够像启动 jmeter-server 脚本一样

    pushd /opt/dlins/apache-jmeter-4.0bin/bin && ./jmeter-server
    

更多信息:

【讨论】:

  • 谢谢。现在得到“/opt/dlins/apache-jmeter-4.0bin/bin /opt/dlins/apache-jmeter-4.0bin/bin /opt/dlins/apache-jmeter-4.0bin/bin /opt/dlins/apache-jmeter -4.0bin/bin /opt/dlins/apache-jmeter-4.0bin/bin /opt/dlins/apache-jmeter-2.6/bin 无法识别的 VM 选项 'MaxMetaspaceSize=256m' 无法创建 Java 虚拟机。”将调查这可能意味着什么......
猜你喜欢
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 2017-10-10
  • 2016-02-14
  • 2019-03-28
  • 2016-06-09
  • 1970-01-01
  • 2019-07-20
相关资源
最近更新 更多