Monitoraggio thread per attori scala
-
06-07-2019 - |
Domanda
C'è un modo per monitorare quanti thread sono effettivamente attivi e in esecuzione i miei attori scala?
Soluzione
L'unico modo per farlo correttamente è iniettare il proprio esecutore per il sottosistema attori poiché, per impostazione predefinita, i thread degli attori non hanno nomi specifici dell'attore o della scala (potrebbero essere chiamato Thread-N
o pool-N-thread-M
a seconda della versione di Scala in uso.
Philip Haller ha dato istruzioni sull'uso del tuo esecutore, dove è possibile monitorare l'utilizzo del thread se lo si desidera, o almeno nominare i thread così creati. Se si sovrascrive la denominazione dei thread, è possibile utilizzare gli MBean di sistema Java standard (ovvero ThreadMXBean ) per monitorare i thread in modo programmatico (o tramite JConsole / JVisualVM).
Nota che puoi controllare il meccanismo predefinito usando le proprietà di sistema:
-
actors.minPoolSize
-
actors.maxPoolSize
-
actors.corePoolSize
Altri suggerimenti
Potresti provare VisualVM strumento (disponibile gratuitamente da Sun). Tra le altre cose, può monitorare i thread nell'esecuzione di JVM.