Probablemente esta pregunta esté mejor redactada: ¿cómo afecta la ejecución de un servidor Java en un hipervisor como VMware ESX al montón de Java?Tamaño del almacenamiento JVM en invitados de VMware
- Acceso a la pila de JVM es aleatorio desde la perspectiva OS/hipervisor
- Es difícil para el sistema operativo huésped o hipervisor para optimizar la memoria que se accede aleatoriamente
- Dado esto, puede el hipervisor detectar las páginas sin usar en JVM montón?
La sabiduría convencional para aplicaciones de servidor Java es que el rendimiento es mejor si se asigna todo el montón en el inicio de la JVM, en lugar de permitir el montón de cambiar el tamaño de forma dinámica a medida que surja la necesidad. En otras palabras, si establece el tamaño del almacenamiento dinámico en 1 GB, su proceso de Java obtendrá 1 GB de espacio de direcciones virtuales contiguas (más lo que sea necesario para los archivos binarios), memoria que ya no estará disponible para otras aplicaciones.
¿Es VMware lo suficientemente inteligente como para detectar que parte de este montón no está en uso? ¿Cómo afecta esto el rendimiento del GC? ¿Sería mejor dejar que el montón se redimensione dinámicamente en VMware? ¿Qué estrategias de GC funcionan mejor con los invitados de VMware?
Además, si alguien puede indicarme las pautas para ajustar montones de JVM en entornos virtualizados, le agradecería mucho.