Sto eseguendo alcuni test delle prestazioni per determinare i tempi di risposta e la capacità di gestire la concorrenza con varie configurazioni di cpu/ram/os. Una scoperta interessante in cui mi sono imbattuto, è che sembra che una singola jvm funzioni meglio con 4 core rispetto a 2 core (non c'è da stupirsi), ma l'aggiunta di più core oltre il 4 core non comporta miglioramenti significativi . Ma poi, l'aggiunta di un'altra istanza di jvm con un bilanciamento del carico (stesso hardware) ha comportato un notevole miglioramento.Quanti core cpu possono utilizzare un singolo processo Java?
Sembra che un singolo processo sia limitato dal numero di core che può utilizzare, forse a causa di una limitazione del numero di thread os che un processo può generare in un momento. Questo è un ambiente a 64 bit.
Im utilizzando tomcat e provato a modificare l'attributo "maxThreads" ma ciò non ha fatto la differenza per la quantità di concorrenza che sto cercando di gestire.
Qualsiasi altra ragione potrebbe essere spiegata?
"Dipende da cosa sta sfruttando la valuta e come"? (Oppure c'è un problema più radicato come solo essere in grado di generare thread su 4 core? Qualche affinità?) –
Quale JVM stai usando? Sembra improbabile che ci sarebbe una limitazione sul numero di core che potrebbero essere utilizzati. –
Forse sei legato a qualcos'altro, ma pura CPU, ad es. un pool di database. O le sessioni utente di tomcat. – nos