gpt4 book ai didi

java - ElasticSearch 占用 100% CPU

转载 作者:行者123 更新时间:2023-11-30 11:48:50 31 4
gpt4 key购买 nike

一段时间后(有时几分钟,有时几天),我的应用开始消耗 100% 的 CPU。正如我从 VisualVM 看到的那样,它总是发生在 org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink 类中。

而且,正如我从日志中看到的,它抛出以下异常:

NioClientSocketPipelineSink:internalWarn:105 - Unexpected exception in the selector loop.
java.nio.channels.CancelledKeyException
at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55)
at sun.nio.ch.SelectionKeyImpl.readyOps(SelectionKeyImpl.java:69)
at java.nio.channels.SelectionKey.isConnectable(SelectionKey.java:318)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:369)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:292)
at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

顺便说一句,我不确定哪里出了问题。

是 ElasticSearch 的问题吗?还是嵌入式Netty?或者我的服务器/应用程序配置?

我正在使用 Ubuntu 64 11.10、Sun Java 1.6.0_26-b03 和 Elastic Search 0.18.5


更新

似乎是因为我尝试为 ElasticSearch 的每个请求打开和关闭连接。我猜这是某种并发问题。

通过在启动时仅打开一次与 Elastic Search 的连接来修复。

最佳答案

你能检查一下最新的 netty 版本 (3.2.7.Final) 看看它是否修复了吗?我认为我们在那里修复了一个错误,该错误可能会导致选择器中出现无限循环并因此消耗 100% 的 CPU。

关于java - ElasticSearch 占用 100% CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604315/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com