Elasticsearch використовує 100% ЦП, коли нічого не робить


0

Під час запуску topя постійно бачу еластичний пошук, використовуючи близько 100% ЦП. Я повністю відключив logstash, і результат перевірки "curl localhost: 9200 / _nodes / hot_threads" показує лише теми в режимі простою:

ubuntu@ip-10-43-108-54:/data$ curl localhost:9200/_nodes/hot_threads ::: {7uyKrAF}{7uyKrAFGS0yMk0XiIrEzUQ}{Bk4GTlkiSqOgNU1cEJVxKw}{10.43.108.54}{10.43.108.54:9300}{ml.machine_memory=16825712640, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true} Hot threads at 2018-10-25T18:46:33.827Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:

ubuntu@ip-10-43-108-54:/data$ curl localhost:9200/_nodes/hot_threads ::: {7uyKrAF}{7uyKrAFGS0yMk0XiIrEzUQ}{Bk4GTlkiSqOgNU1cEJVxKw}{10.43.108.54}{10.43.108.54:9300}{ml.machine_memory=16825712640, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true} Hot threads at 2018-10-25T18:46:35.452Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:

0.0% (101.7micros out of 500ms) cpu usage by thread 'elasticsearch[7uyKrAF][[timer]]'
 10/10 snapshots sharing following 2 elements
   java.lang.Thread.sleep(Native Method)
   org.elasticsearch.threadpool.ThreadPool$CachedTimeThread.run(ThreadPool.java:543)

ubuntu@ip-10-43-108-54:/data$ curl localhost:9200/_nodes/hot_threads ::: {7uyKrAF}{7uyKrAFGS0yMk0XiIrEzUQ}{Bk4GTlkiSqOgNU1cEJVxKw}{10.43.108.54}{10.43.108.54:9300}{ml.machine_memory=16825712640, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true} Hot threads at 2018-10-25T18:46:38.779Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:

ubuntu@ip-10-43-108-54:/data$ curl localhost:9200/_nodes/hot_threads ::: {7uyKrAF}{7uyKrAFGS0yMk0XiIrEzUQ}{Bk4GTlkiSqOgNU1cEJVxKw}{10.43.108.54}{10.43.108.54:9300}{ml.machine_memory=16825712640, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true} Hot threads at 2018-10-25T18:46:40.579Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:

0.0% (90.5micros out of 500ms) cpu usage by thread 'elasticsearch[7uyKrAF][[timer]]'
 10/10 snapshots sharing following 2 elements
   java.lang.Thread.sleep(Native Method)
   org.elasticsearch.threadpool.ThreadPool$CachedTimeThread.run(ThreadPool.java:543)

0.0% (33.8micros out of 500ms) cpu usage by thread 'ticker-schedule-trigger-engine'
 10/10 snapshots sharing following 2 elements
   java.lang.Thread.sleep(Native Method)
   org.elasticsearch.xpack.watcher.trigger.schedule.engine.TickerScheduleTriggerEngine$Ticker.run(TickerScheduleTriggerEngine.java:161)</code>

Які типові причини для цього?

Відповіді:


0

Нитки, показані як гарячі, - це ті, які Еластичний вважає гарячими. Щоб діагностувати свій стан, ви хочете побачити всі потоки в процесі, щоб побачити, чи є діяльність, яка несподівана. Щоб отримати цю інформацію, виконайте наступні команди:

ps aux | grep elastic

hogstrom 4675 0,0 3,8 7018056 1284496 s001 S + 16:43 0: 17,49 /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java -Xms1g -Xmx1g [snip ...]

Потім візьміть PID і видайте наступну команду, щоб отримати скидання всіх потоків у JVM. Використовуючи приклад вище,

jcmd 4675 Thread.print

Це дасть вам скидання потоку всіх потоків Java. Там ви можете побачити, які потоки є у СВМ та їхній стан.

"Elasticsearch [cXcMg1Z] [http_server_worker] [Т # 2]" # 61 демон PRIO = 5 os_prio = 31 TID = 0x00007fa84fbdd000 NID = 0x14a03 працездатною java.lang.Thread.State [0x00007000147fa000]: Runnable в sun.nio.ch.KQueueArrayWrapper .kevent0 (Native Method) у sun.nio.ch.KQueueArrayWrapper.poll (KQueueArrayWrapper.java:198) at sun.nio.ch.KQueueSelectorImpl.doSelect (KQueueSelectorImpl.java:117) at sun.nio.ch.SelectorImpl (SelectorImpl.java:86)

Приклад потоку - Runnable. Пройшовши всі потоки, ви повинні знайти нитку, яка працює, і вкаже на завдання, яке споживає процесор.


Єдиною ниткою для запуску, на якій не було запущено "epollwait", був реєстратор на ml у xpack, який я не використовую. [WARN ][o.e.m.j.JvmGcMonitorService] [7uyKrAF] [gc][7673] overhead, spent [2.3s] collecting in the last [2.7s]
Еластичний пошук.лог

Здається, це періодичний сплеск до 300 +%, який потім зменшиться.
user79914

Чи можете ви збільшити розмір купи .... якщо ваш GC, то у вас недостатньо пам'яті. Ви працюєте з -verbose: gc. Це повинно дати вам уявлення про кількість пам'яті, яку ви використовуєте, і відношення до використовуваної та доступної пам'яті.
Хогстром

Я змінив розмір купи з 1 ГБ на 10 ГБ, і це все ще крутять цикли процесора, але це набагато стабільніше і чуйніше, дякую!
user79914
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.