2017-07-28 1 views
1

Nur einige Debugging auf meiner Anwendung, bemerkte eine ziemlich große Diskrepanz. Weblogic berichtet (Server> Monitoring> Threads) bei 6Weblogic Thread-Überwachung zeigt falsche Anzahl vs OS-Threads

Aber wenn ich fragen Sie die OS:

ps -eLF| grep user | grep -c java

Linux zeigt 37+ Themen ... Also meine erste Frage ist, warum die Diskrepanz? Meine zweite Frage ist, wie kann ich mehr Informationen erhalten, warum diese Threads von os gestartet wurden?

Der Grund, warum ich frage ist, dass ich auf dem OS aus Ressourcen leite und ich versuche, clevere Möglichkeiten, um herauszufinden, Behälter zu optimieren, ohne auf ihn zu berühren bereitgestellten Anwendungen ...

Antwort

1

Versuchen Sie, Erhalte einen Thread-Dump von der JVM. Es gibt viele Managements Themen:

  • Compiler Fäden (zur Erzeugung Maschinencode)
  • Garbage Collector Fäden (oft ein Thread pro Kern)
  • Finalisierungsschlange Verarbeitungsthreads
  • JMX Management Zuhörer

Weblogic verwaltet möglicherweise auch einen Thread-Pool, und die gemeldete Anzahl enthält wahrscheinlich nicht die Anzahl der ruhenden Threads im Pool.

+0

Gibt es eine Möglichkeit, mindestens einige der vom Container verwendeten Threads abzustimmen? Ein gutes Dutzend (12) von ihnen sind: "[STANDBY] ExecuteThread: 'x' für die Warteschlange: 'weblogic.kernel.Default (Selbstoptimierung)" Ich würde wirklich gerne einen Weg finden, die Gesamtzahl der Threads zu reduzieren, sogar um 20-25% – sloven

+0

Ich würde Ressourcen zu Websphere Tuning konsultieren. Ich fand diese [Ressource auf Thread-Pool-Tuning] (https://www.ibm.com/developerworks/websphere/techjournal/0909_blysthe/0909_blythe.html#sec3b). Ich weiß nicht, wie nützlich es ist, tut mir leid. –