【ElasticSearch故障处理】OpenJDK 64-Bit Server VM warning

【故障描述】

  VM虚拟机安装ElasticSearch集群,有三台Linux,完成安装后,执行启动命令:bin/elasticsearch -d 。 运行结果报错:

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N

并且开启:http://bigdata12:9200/无法正常显示

【故障处理】

在虚拟机的设置中,将处理器的处理器核心数量改成2,重新执行启动命令后,能够正常运行。若还是未能执行成功,可进一步将处理器数量也改成2.

 

 

E:\rzsjyfxruanjian\logstash-8.0.0\logstash-8.0.0>.\bin\logstash -f .\config\logstash.conf -t "Using bundled JDK: ." OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. Sending Logstash logs to E:/rzsjyfxruanjian/logstash-8.0.0/logstash-8.0.0/logs which is now configured via log4j2.properties [2025-03-19T10:09:09,895][INFO ][logstash.runner ] Log4j configuration path used is: E:\rzsjyfxruanjian\logstash-8.0.0\logstash-8.0.0\config\log4j2.properties [2025-03-19T10:09:09,905][WARN ][logstash.runner ] The use of JAVA_HOME has been deprecated. Logstash 8.0 and later ignores JAVA_HOME and uses the bundled JDK. Running Logstash with the bundled JDK is recommended. The bundled JDK has been verified to work with each specific version of Logstash, and generally provides best performance and reliability. If you have compelling reasons for using your own JDK (organizational-specific compliance requirements, for example), you can configure LS_JAVA_HOME to use that version instead. [2025-03-19T10:09:09,905][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"8.0.0", "jruby.version"=>"jruby 9.2.20.1 (2.5.8) 2021-11-30 2a2962fbd1 OpenJDK 64-Bit Server VM 11.0.13+8 on 11.0.13+8 +indy +jit [mswin32-x86_64]"} [2025-03-19T10:09:09,915][INFO ][logstash.runner ] JVM bootstrap flags: [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djruby.compile.invokedynamic=true, -Djruby.jit.threshold=0, -Djruby.regexp.interruptible=true, -XX:+HeapDumpOnOutOfMemoryError, -Djava.security.egd=file:/dev/urandom, -Dlog4j2.isThreadContextMapInheritable=true, --add-opens=java.base/java.security=ALL-UNNAMED, --add-opens=java.base/java.io=ALL-UNNAMED, --add-opens=java.base/java.nio.channels=ALL-UNNAMED, --add-opens=java.base/sun.nio.ch=ALL-UNNAMED, --add-opens=j
最新发布
03-20
### 关于 Logstash 启动时 UseConcMarkSweepGC 被弃用的警告解决方案 Logstash 使用的是基于 JVM 的运行环境,因此当启动 Logstash 时,如果配置文件中指定了 `UseConcMarkSweepGC` 垃圾回收器选项,则会触发该垃圾回收器已被废弃的警告。此问题的根本原因在于自 Java 9 开始,`UseConcMarkSweepGC` 已被标记为过时,并将在未来的版本中移除[^1]。 #### 解决方案 为了消除这一警告并确保兼容未来版本的行为变化,可以通过修改 Logstash 的 JVM 配置来实现: 1. **禁用 CMS GC 并启用 G1 GC** 修改 Logstash 的 JVM 配置文件(通常位于 `/etc/logstash/jvm.options`),找到如下行: ```bash -XX:+UseConcMarkSweepGC ``` 将其注释掉或删除,并替换为以下内容以启用 G1 Garbage Collector: ```bash -XX:+UseG1GC ``` 2. **调整堆内存设置** 如果尚未定义堆大小参数,建议显式指定最小和最大堆大小以优化性能。例如,在同一配置文件中添加以下两行: ```bash -Xms512m -Xmx512m ``` 这里的值可以根据实际硬件资源情况适当调整。 3. **验证更改后的效果** 执行上述操作后重启 Logstash 服务,观察日志输出是否仍然存在相关警告信息。如果没有其他依赖项强制要求使用特定类型的垃圾收集算法,则应不会再看到类似的提示消息。 ```bash sudo systemctl restart logstash ``` 通过以上方法不仅解决了当前遇到的问题,还遵循了现代 Java 应用程序开发的最佳实践推荐——即采用更先进的垃圾回收机制替代逐渐被淘汰的传统方式[^4]。 ### 注意事项 尽管 Elasticsearch 自带了一个嵌入式的 OpenJDK 版本用于简化部署流程[^3],但在某些情况下可能仍需手动安装更高版本的 JDK 来满足特定需求,比如支持最新的安全补丁或是利用新特性提升效率等。对于本文讨论的主题而言,默认随附的 JDK 已经足够胜任处理此类简单的配置变更任务。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值