Die Threads, die als Hot angezeigt werden, sind diejenigen, die Elastic für Hot hält. Um Ihren Zustand zu diagnostizieren, sollten Sie alle Threads im Prozess sehen, um festzustellen, ob unerwartete Aktivitäten vorliegen. Um diese Informationen zu sammeln, folgen Sie diesen Befehlen:
ps aux | grep elastic
hogstrom 4675 0,0 3,8 7018056 1284496 s001 S + 4:43 PM 0: 17,49 /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java -Xms1g -Xmx1g [snip ...]
Dann holen Sie sich die PID und geben Sie den folgenden Befehl ein, um einen Auszug aller Threads in der JVM zu erhalten. Anhand des obigen Beispiels
jcmd 4675 Thread.print
Dadurch erhalten Sie einen Thread-Dump aller Java-Threads. Dort können Sie sehen, welche Threads sich in der JVM befinden und welchen Status sie haben.
"elasticsearch [cXcMg1Z] [http_server_worker] [T # 2]" # 61 daemon prio = 5 os_prio = 31 tid = 0x00007fa84fbdd000 nid = 0x14a03 lauffähig [0x00007000147fa000] java.lang.Thread.State: RUNNABLE bei .kevent0 (Native Method). bei sun.nio.ch.KQueueArrayWrapper.poll (KQueueArrayWrapper.java:198) bei sun.nio.ch.KQueueSelectorImpl.doSelect (KQueueSelectorImpl.java:117) bei sun.nio.ch.AudioOberel.Java (SelectorImpl.java:86)
Der Beispiel-Thread ist lauffähig. Wenn Sie alle Threads durchgehen, sollten Sie einen Thread finden, der ausgeführt wird, und auf die Aufgabe verweisen, die die CPU verbraucht.