Когда я работаю на 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:

убунту @ ф-10-43-108-54:/ данные $ завиток локальный: 9200/ _nodes/ hot_threads ::: {7uyKrAF} {} {7uyKrAFGS0yMk0XiIrEzUQ Bk4GTlkiSqOgNU1cEJVxKw} {10.43.108.54} {} {10.43.108.54:9300 мл. machine_memory = 16825712640, xpack.installed = true, ml.max_open_jobs = 20, ml.enabled = true} Горячие темы в 2018-10-25T18: 46: 35.452Z, интервал = 500 мс, 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)

убунту @ ф-10-43-108-54:/ данные $ завиток локальный: 9200/ _nodes/ hot_threads ::: {7uyKrAF} {} {7uyKrAFGS0yMk0XiIrEzUQ Bk4GTlkiSqOgNU1cEJVxKw} {10.43.108.54} {} {10.43.108.54:9300 мл. machine_memory = 16825712640, xpack.installed = true, ml.max_open_jobs = 20, ml.enabled = true} Горячие темы в 2018-10-25T18: 46: 38.779Z, интервал = 500 мс, busiestThreads = 3, ignoreIdleThreads = true:

убунту @ ф-10-43-108-54:/ данные $ завиток локальный: 9200/ _nodes/ hot_threads ::: {7uyKrAF} {} {7uyKrAFGS0yMk0XiIrEzUQ Bk4GTlkiSqOgNU1cEJVxKw} {10.43.108.54} {} {10.43.108.54:9300 мл. machine_memory = 16825712640, xpack.installed = true, ml.max_open_jobs = 20, ml.enabled = true} Горячие темы в 2018-10-25T18: 46: 40.579Z, интервал = 500 мс, 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>

Каковы типичные причины этого?

1 ответ1

0

Потоки, показанные как Горячие, - это те, которые Elastic считает горячими. Для диагностики вашего состояния вы захотите увидеть все потоки в процессе, чтобы увидеть, есть ли активность, которая является неожиданной. Чтобы собрать эту информацию, выполните следующие команды:

ps aux | grep elastic

hogstrom 4675 0,0 3,8 7018056 1284496 s001 S+ 16:43 PM 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. Там вы можете увидеть, какие потоки находятся в JVM и их состояние.

"asticsearch [cXcMg1Z] [http_server_worker] [T # 2] »# 61 демон prio = 5 os_prio = 31 tid = 0x00007fa84fbdd000 nid = 0x14a03 runnable [0x00007000147fa000] java.lang.Нить.Состояние: работает на sun.nio.ch.KQueueArrayWrapper.kevent0(собственный метод) на sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198) в sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117) в sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)

Пример потока - Runnable. Пройдя по всем потокам, вы должны найти поток, который работает и укажет на задачу, которая потребляет процессор.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .