Stiamo facendo dei buoni progressi nel test di carico e nel ridimensionamento di un'applicazione akka ma stiamo vedendo scala.concurrent.forkjoin.ForkJoinPool.scan() in arrivo come il secondo hotspot più alto circa il 20% del tempo di auto in VisualVM. La colonna Self time (CPU) dice solo una frazione di quello (meno dell'1% del valore della colonna self time).Akka - durante il test di carico, forkjoinpool.scan al 20% del tempo di CPU
Ho il sospetto che questo significa il blocco o il cambio di contesto sono potenzialmente problematici, ma io non sono troppo sicuro - uno può dare qualche idea? Se si tratta di cambio di contesto, suppongo che il tuning del throughput del dispatcher su un numero più elevato possa comportarci in netto guadagno, altrimenti, se è causato dal blocco, avremo bisogno di leggere di più il codice.
Qualsiasi intuizione molto apprezzata.
vorrei leggere questa discussione in quanto fornisce alcune buone informazioni sul perché si potrebbe vedere un sacco di tempo di attesa occupato con il PLG. Si potrebbe effettivamente avere un codice di blocco che sta rallentando le cose causando la scansione dei thread FJP inattivi per lavoro più del previsto. https://groups.google.com/forum/m/#!topic/akka-user/6HKTvw4yBnU – cmbaxter
Grazie - quel thread è ciò che mi ha spinto a pensare che ci devono essere alcuni thread parcheggiati - quello e il tempo dell'orologio a muro contro il CPU attuale utilizzata. Questa è un'affermazione utile +1 – JasonG