Cómo determinar el tamaño ideal para un Metaspace para java 8

Aquí hay varias cosas que puede considerar:

  1. Tamaño inicial de Metaspace: ¿Ve un impacto negativo y medible al iniciar su aplicación porque la JVM tiene que redimensionar el metaespacio? Entonces probablemente deberías establecer el tamaño mínimo. Aún así, trataría de evitar esto porque sería una configuración que se olvidará fácilmente cuando la aplicación crezca.-XX:MetaspaceSize=<NNN>

  2. Tamaño máximo de Metaspace: ¿Desea que su aplicación falle cuando el metaespacio creció a un tamaño específico? ¿O desea limitar los recursos que el servidor toma en este sentido? Entonces probablemente deberías establecer un tamaño máximo para el metaespacio-XX:MaxMetaspaceSize=<NNN>

  3. Metaspace Free Ratio: ¿Carga dinámicamente muchas clases diferentes? Entonces, podría definir una relación libre en el metaespacio para que siempre haya suficiente espacio disponible para nuevas clases y no se necesite cambiar el tamaño en situaciones críticas. -XX:MinMetaspaceFreeRatio=<NNN>y-XX:MaxMetaspaceFreeRatio=<NNN>

Mi sugerencia sería mantener los valores predeterminados, probarlo y solo reaccionar cuando sea necesario.

Respuesta 1

La introducción de Metaspace fue un intento de solucionar los problemas de falta de memoria de Java (IIRC) cuando se trata de la recolección de basura mediante el crecimiento / asignación de memoria dinámica mencionado.

En un entorno de producción, lo que voy a decir no es realmente tan viable, sino: Pruébalo. Personalmente, nunca tuve problemas con la configuración dinámica predeterminada, pero supongo que dependerá del tamaño y el estrés de su aplicación. Por ahora, suponga que la configuración predeterminada es la adecuada.

Respuesta: 2

Me he referido a esto antes de publicar esta pregunta. Verificación de envoltorios nulos contra valores primitivos Y tengo una situación en la que quiero verificar el Wrapper Integer con nulo también 0 if (statusId! = Null ...

Antes de Java8, usaba la clase DateTime de Joda para incluir información de zona horaria y puedo convertir fácilmente entre DateTime y sql Timestamp. Una vez que migre a Java8, ¿qué clase debería reemplazar? ...

Tengo un problema muy divertido hoy. Estoy tratando de modificar una matriz, pero el método modifica otra matriz en la que ni siquiera se invoca. a) Parte del método que está causando problemas public static void place2 (...

Estoy usando Java 1.8.0_131, Mockito 2.8.47 y PowerMock 1.7.0. Mi pregunta no está relacionada con PowerMock, se lanza a un Mockito.when (...) matcher. Necesito una solución para burlarme de este método que es ...