ElasticSearch потребляет 100% CPU - PullRequest
2 голосов
/ 22 декабря 2011

Через некоторое время (иногда минуты, иногда дни) мое приложение начинает использовать 100% ЦП. Как я вижу из 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? Или встроенный нетти? Или конфигурация моего сервера / приложения?

Я использую Ubuntu 64 11.10, Sun Java 1.6.0_26-b03 и Elastic Search 0.18.5


Обновление

Кажется, это потому, что я пытался открывать и закрывать соединение для каждого запроса к ElasticSearch. И это была, я думаю, какая-то проблема параллелизма.

Исправлена ​​ошибка, при которой соединение с Elastic Search открывалось один раз при запуске.

1 Ответ

1 голос
/ 23 декабря 2011

Можете ли вы проверить с последней версией netty (3.2.7.Final) и посмотреть, если это исправить? Я думаю, что мы исправили ошибку, которая могла вызвать бесконечный цикл в селекторе и, таким образом, потреблять 100% ресурсов процессора.

...