Windows10下JMeter5.4.3启动ServerAgent2.2.3报log4j及JVM崩溃问题
问题定位
- 启动阶段的log4j告警为非阻断问题,是ServerAgent包内缺失log4j配置文件导致,不会引发进程崩溃,可后续按需修复
- 核心JVM崩溃问题根因为:ServerAgent 2.2.3自带的
sigar-amd64-winnt.dll本地库版本过旧,与Windows 10高版本、Java 11存在兼容性缺陷,采集系统性能指标调用本地接口时触发内存访问违规,导致JVM异常退出。
解决步骤
优先修复核心崩溃问题
替换Sigar本地依赖
- 下载适配64位Windows10、兼容Java11的
sigar-amd64-winnt.dll文件,覆盖ServerAgent安装目录下lib/sigar/路径内的同名旧文件 - 结束系统内所有残留的java.exe进程,重新执行
.\startAgent.bat启动Agent,验证崩溃问题是否消失
注意:必须使用64位版本dll,和系统、JDK位数保持一致,否则仍会报错
- 下载适配64位Windows10、兼容Java11的
降级Agent运行的JDK版本
- 若替换dll后问题仍存在,将ServerAgent启动依赖的JDK切换为JDK8,该版本是ServerAgent 2.2.3原生兼容版本,无本地库调用兼容问题
- 直接编辑
startAgent.bat脚本,将启动命令中的java替换为JDK8安装路径下的完整java.exe路径(例如"C:\Program Files\Java\jdk1.8.0_301\bin\java.exe"),避免系统默认调用高版本JDK启动服务
可选修复log4j告警
如果需要消除启动时的log4j告警,在ServerAgent的lib目录下新建log4j.properties文件,写入以下配置即可:
log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] [%-5p] %c - %m%n
修复验证
- 启动ServerAgent后,控制台持续保持运行状态,无崩溃日志输出,默认4444端口正常处于监听状态
- 在JMeter的PerfMon Metrics Collector中配置对应Agent的IP和端口,启动短时间压测,确认CPU、内存、磁盘等性能指标可正常采集,Agent进程不会异常退出
内容的提问来源于stack exchange,提问作者user19330066
相关产品推荐
相关产品推荐

