Estoy ejecutando algunas pruebas de rendimiento para determinar los tiempos de respuesta y la capacidad de manejar la concurrencia con varias configuraciones de cpu/ram/os. Un hallazgo interesante al que me he encontrado es que parece que un solo JVM tiene un mejor rendimiento con 4 núcleos que con 2 núcleos (no es sorprendente), pero agregar más núcleos más allá del 4º núcleo no da como resultado mejoras significativas . Pero luego, agregar otra instancia de jvm con un equilibrador de carga (mismo hardware) resultó en una mejora dramática.¿Cuántos núcleos de CPU puede utilizar un solo proceso de Java?
Parece que un proceso individual está limitado en la cantidad de núcleos que puede utilizar, tal vez debido a una limitación en la cantidad de hilos del sistema operativo que un proceso puede generar a la vez. Este es un entorno de 64 bits.
Im usando Tomcat y traté de cambiar el atributo "maxThreads", pero eso no hizo una diferencia para la cantidad de concurrencia que estoy tratando de manejar.
¿Alguna otra razón que podría explicarse?
"Depende de lo que se está aprovechando de la moneda y cómo"? (¿O hay un problema más arraigado como solo poder engendrar hilos en 4 núcleos? ¿Alguna afinidad?) –
¿Qué JVM estás usando? Parece poco probable que haya una limitación en la cantidad de núcleos que pueden utilizarse. –
Tal vez estés obligado a algo más que CPU pura, p. un grupo de base de datos. O las sesiones de usuario de Tomcat. – nos