時間の経過とともに(時には数分、時には数日後)、私のアプリは100%CPUを使い始めます。私はVisualVMから見ると、常にorg.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink
クラスで起きています。ElasticSearchはCPUを100%消費します
そして、私がログから見ても、それは次の例外がスローされます。問題がどこにある
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および弾性検索0.18.5
更新
を使用してい
は私が開くしようとしたので、それがあったようですElasticSearchへのリクエストごとに接続を閉じます。そして、それはいくつかの並行性の問題でした。
起動時にElastic Searchへの接続を1回だけ開くことで修正されました。
ルックのは、メーリングリスト、https://groups.google.com/group/elasticsearch/browse_thread/thread/b5a86523bfd616b7/9609d236626feef0?lnk=gst&q=100%25#9609d236626feef0 – Andy
そうそう上で同様のスレッドがあります。私はウェブの周りにこのような投稿が表示されますが、それらはNettyの古いバージョン用ですが、ElasticSearch 0.18.5では新しいNettyが使用されています。だから、多分何かがあるかもしれない –