java - logo - hbase
Java GC Concept: CMSInitiatingOccupancyFraction (1)
Ninguno. Será elegible para ejecutarse después de que la ocupación de la generación anterior alcance el 50%, donde el tamaño de la generación anterior es el tamaño del montón menos el tamaño de la nueva generación: 2560m - 786m = 1792m, entonces eso sería después del la vieja generación alcanza los 896m. Pero ese no es siempre el único parámetro. Es posible que desee agregar -XX: + UseCMSInitiatingOccupancyOnly si desea que se convierta en el único parámetro (aunque en mi experiencia, CMS realmente se desencadena en el umbral, incluso sin él).
Para resumir:
-
-Xmx
es la memoria de montón total -
-XX:NewSize
/-XX:MaxNewSize
es el rango del tamaño de la nueva generación dentro de ese montón - la diferencia es el rango del tamaño de la generación anterior
-
-XX:PermSize
/-XX:MaxPermSize
es el rango del tamaño de la generación permanente, que es la memoria que no es de montón
Tengo abajo las opciones de memoria configuradas:
export MEM_OPTS = "- Xmx2560m -Xms2560m -XX: NewSize = 786m -XX: MaxNewSize = 786m -XX: + UseTLAB -XX: MaxPermSize = 512m"
Los parámetros de GC son los siguientes:
exportar GC1_OPTS = "- XX: + UseConcMarkSweepGC -XX: + UseParNewGC -XX: CMSInitiatingOccupancyFraction = 50 -XX: + CMSPermGenSweepingEnabled -XX: + CMSClassUnloadingEnabled -XX: + CMSParallelRemarkEnabled -XX: + UseAdaptiveGCBoundary" exportar GC2_OPTS = "- XX: + ExplicitGCInvokesConcurrent "
Me gustaría saber, cuándo se ejecutará CMS. Se ejecutará después del 50% de 2560 MB o se ejecutará después del 50% de 512 MB de memoria.
¿Cuál es el concepto?
Mi memoria Heap total sería = 2560 + 786 + 512 MB .... ¿verdad? o "-XX: NewSize = 786m -XX: MaxNewSize = 786m" es para NON Heap. Explica el concepto.