jMeter ServerAgent 在 Windows Server 2016 中崩溃

jMeter ServerAgent crashing in Windows Server 2016

我们正在加载测试使用 JMeter 和 Perfmon 插件的 .NET 应用程序。我们是 运行 Perfmon ServerAgent,用于收集 CPU 和 Windows Server 2008 R2(用于 App)和 Windows Server 2016 R2(用于 SQL 服务器 2016)。 ServerAgent 在 2008 R2 中运行良好,但 2016 R2 中的 ServerAgent 在 JMeter 启动后立即崩溃。两台服务器都是 运行 相同版本的 JRE 8。

崩溃日志:

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000010014ed4, pid=6340, tid=0x000000000000214c

#

# JRE version: Java(TM) SE Runtime Environment (8.0_261-b12) (build 1.8.0_261-b12)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode windows-amd64 compressed oops)

# Problematic frame:

# C  [sigar-amd64-winnt.dll+0x14ed4]

#

以下是目前尝试过但没有成功的解决方案。

  1. PerMon 在服务器上 运行 并捕获 CPU 和内存使用情况。

  2. 端口或网络流量没有问题。服务器代理在两次 servers.After 崩溃时都在端口 4444 上接收请求,JMeter 显示超时错误,因为它无法到达服务器代理。

  3. 我们尝试通过将其设置为禁用 DEP - 仅对基本 Windows 程序和服务 打开 DEP

  4. 运行 具有管理员权限的 ServerAgent 无效。它仍然崩溃。

  5. 运行 ServerAgent 在兼容模式下没有效果。它仍然崩溃。

听起来像 SIGAR bug,不幸的是,您无能为力(除非您想调查 sigar-amd64-winnt.dll 的问题,实施解决方案,将其贡献给 SIGAR 上游并更新JMeter PerfMon 插件到固定版本)

同时您可以参考 SSHMon Samples Collector as the workaround, check out How to Monitor Server Resource Utilization with JMeter’s SSHMon Listener 文章了解更多详情