Soy nuevo en jstat herramienta. Por lo tanto, hice un ejemplo como el siguiente.

./jstat -gcutil -t 4001 5000
Timestamp         S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
565088.4   0.00   0.89  75.86  40.59  84.80    405    3.822     4    0.549    4.371
565093.4   0.00   0.89  77.81  40.59  84.80    405    3.822     4    0.549    4.371
565098.4   0.00   0.89  77.81  40.59  84.80    405    3.822     4    0.549    4.371
565103.5   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371
565108.5   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371
565113.4   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371
jstat -gc output
S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT
704.0  704.0   0.4    0.0    6080.0   4013.8   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4016.6   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506

Esto, qué resultados se indica? Que son las columnas de mirar hacia fuera para que sea posible problema de memoria por ejemplo, pérdida de memoria, etc.

InformationsquelleAutor new14 | 2013-01-22

3 Comentarios

  1. 24

    Consulte la documentación:

    https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

    Básicamente una fila es un punto en el tiempo. Las columnas muestran los datos aboutr las áreas de memoria de la JVM (Sobreviviente, el Edén, …), la comprensión de que es imposible sin saber cómo la JVM obras.

    Por ejemplo, en el artículo JVM de recolección de basura en la generación de jóvenes hay alguna explicación.

    Aquí está el extracto de cómo JVM objeto de obras de generación:

    Eden es un lugar donde los nuevos objetos creados. Cuando el Eden está completo, un small GC se ejecuta: si un objeto no tiene ninguna referencia a ella, va a ser eliminado, de lo contrario va a sobrevivir, y pasar a la Survivor espacio (sólo uno de los sobreviviente de los espacios en uso al mismo tiempo, todos los objetos del espacio es copia no existe).

    Si un objeto sobrevive a un número determinado de ida y vuelta de copia, se trasladó a Old espacio. Si el espacio está lleno, un Full GC se ejecute, lo que afecta a todos los objetos en la JVM, por lo que es mucho más pesado de la operación.

    También, existe la Permanent espacio, donde los «metadatos» (clase descriptores, de campo, método, … de descriptores) se almacenan.

    • He de google también, pero no me acababa de conseguir esta parte S0C Actual sobreviviente espacio 0 capacidad (KB). S1C Actual sobreviviente del espacio 1 capacidad (KB). como la mayoría de los sitios de discutir sobre esto.
    • Este no es el tamaño, es la capacidad (en %). Echa un vistazo a este: stackoverflow.com/questions/13660871/… Hay som explicación acerca de la generación de objetos.
    • así que en mi caso el eden espacio es 77.85 que pronto va a tener un menor GC es? Así que en la actualidad el eden es ahora casi el 94% ¿qué nos indica esto cuando el eden crecer significado de lo nuevo que se agrega es?
    • Qué significa que mi viejo stufed no se borran automáticamente y puede conducir a la pérdida de memoria?
    • Eden llegar a los 100, a continuación, el S0 se convierte 0.89 y S1 es de 0.00 y E, a continuación, empezar de nuevo y S0 es de 0.00 y S1 volver a 0,89?
    • Usted no tiene que preocuparse, GC corre con bastante frecuencia. Ver la actualización de alguna explicación.
    • En su caso, me gustaría añadir más PermGen espacio, el 84% es un poco alto. Y sí, si PermGen es completa, puede causar OutOfMemoryError.
    • ahora que me doy cuenta es 80.87% no es una caída. ¿Cómo va a obtener una gota? Cuánto PermGen para ser añadido?
    • El PermGen en sí tiene un tamaño mínimo, tamaño real, y el tamaño máximo. Probablemente cuando se fue de 84%, el tamaño era más pequeño. Posteriormente se ha ampliado, ¿ el por ciento de ws caído.
    • Lo he aceptado, pero quiero aprender y confirmar más cosas de usted. ¿Cómo puedo hacer el por ciento vs caído? ¿Qué otra cosa debe estar en la veían?
    • Cuando ejecuto gccause me muestra «Error de Asignación de Nº GC». ¿Esto qué significa la Asignación de Fracaso?
    • Si ejecuta jstat -gc obtendrá la capacidad y la utilización de porcentaje. Allí usted puede ver los números. No puedo dar un curso sobre jstat 🙂 pero te puedo decir lo que me gustaría ver: Old y PermGen tamaño, la frecuencia de la pequeña GC (se dice acerca de la utilización de objetos, si es frecuente que me gustaría añadir más a Eden). También, si es un crítico de la aplicación, me gustaría comprobar con más frecuencia y en comparación con el resultado (como los usuarios utilizan la aplicación, cómo los espacios de memoria están creciendo)
    • En la Asignación de Fracaso en GC» : la mirada en ibm.com/developerworks/library/i-gctroub y ver «cómo Evitar el montón de basura» – hay una solución.
    • He actualizado mi pregunta con jstat -gc salida, así que ¿qué debo buscar es el asignado y utilización ? Sí entiendo que no me dan un curso jeje pero sólo destacar a mí lo que debe estar en la mirada hacia fuera como mi aplicación es un crítico.
    • He visitado el enlace que te dio, lo que supone que debe increado un mayor tamaño de la pila para evitar este problema es? En realidad mi aplicación es bastante pequeño, pero ¿por qué es tener error de asignación de
    • Tal vez debido a que el GC siempre libera algo de memoria, pero no es suficiente para las necesidades de su aplicación. E. g. desea asignar una matriz de gran tamaño (por ejemplo, un String tiene un char[] en el interior), y no hay suficiente memoria para eso. No se puede decir que la memoria está llena, no es suficiente.
    • Sí, yo uso un buen número de lugares de variables de Cadena. Otra cosa que también he pocas líneas para supervisar la memoria en la propia aplicación. Sistema.a cabo.println(«uso de la Memoria:» + (tiempo de ejecución.totalMemory() – tiempo de ejecución.freeMemory()) / mb); veo que hay algún pequeño aumento, como una o 2 mb después de algún tiempo.
    • Es interesante si desea almacenar una Cadena de caracteres con 1M (por ejemplo, incluso con un implícito stringBuilder.toString()). Si la GC corre, se va a liberar algo de memoria, probablemente eso es lo que se puede ver. 2M es bastante pequeña. A partir de las últimas estadísticas, puedo ver que usted debe aumentar el PermGen espacio, debido a que es casi completo.
    • Yo no se usted cuando dice «si desea almacenar una Cadena de caracteres con 1M». ¿Cuánto debo agregar la PermGen? Así que durante el GC no la PermGen obtener más clara.
    • Estos son 2 historias diferentes. En realidad, tanto el -Xmx y la -XX:MaxPermSize parámetros deben ser planteadas.
    • así, por una de 4Gb máquina cuáles son los mejores parámetros para ambos-Xmx y -XX:MaxPermSize?
    • Depende. ¿Cuáles son los valores actuales? Es de escritorio o servidor de la aplicación? Qué sistema operativo tienes? ¿Qué otras aplicaciones se están ejecutando en él? Lo de la carga de usuarios que se espera (en comparación con la corriente de carga)? Por lo general, usted puede dar 3G a -Xmx y 512M – 768M a permsize como máximo.
    • Por favor, considere el uso de una habitación en Desbordamiento de la Pila de Chat; es realmente mucho más fácil mantener una conversación allí.
    • tienes razón, pero por desgracia new14 no tiene suficiente reputación para usarlo
    • Estoy usando Centos 6.3. No estoy seguro de cómo comprobar la configuración actual. La aplicación es socket de escucha, donde es un servidor y los clientes se va a conectar y pasar los datos a la misma. Los clientes aquí los dispositivos que va a conectar y pasar los datos.
    • Compruebe la secuencia de comandos donde se inicia la aplicación, probablemente no son las opciones actuales. Si la encuentra, se pueden modificar. Si no, usted utiliza su JVM configuración predeterminada (que es por lo general alrededor de 256 m), en este caso agregar los parámetros que desee y empezar a jugar. Trate de 1G / 128M para empezar.
    • Ok voy a probar con Xmx como 1G y MaxPermSize como 128M. Otra cosa del Sistema.a cabo.println(«máximo de la Memoria:» + tiempo de ejecución.maxMemory() / mb); da los valores como 1735? ES este el Xmx valor.
    • Veo que hay un aumento de 1 mb más de unas horas. ¿Qué más herramientas puedo utilizar para confirmar si tengo algunos problemas de memoria?
    • 1 MB no es mucho. De hecho, eso es muy baja. No sé de que las bibliotecas de usar, pero imagino que todos los bits de código que se utiliza en este JVM puede agregar algo (clases, objetos, cachés, las fábricas, las sesiones, las piscinas, lo que sea construir su uso) a la memoria asignada. Así que si usted tiene 1G, calcular que cuando se alcance la cantidad máxima de memoria disponible – semanas. Pero esa es otra escala de tiempo, usted verá que la tasa de aumento es el abandono es una especie de warm-up.
    • También recomiendo a mirar a su alrededor de que las herramientas que puede encontrar en el $JAVA_HOME/bin. Recomiendo jmapdocs.oracle.com/javase/1.5.0/docs/tooldocs/share/jmap.html
    • ok, básicamente, mi solicitud es socket de escucha y de allí después de tener un número de select,insert y update instrucción se ejecuta. Además también estoy usando bonecp para la agrupación de conexiones. He intentado usar el jmap y administrar a tomar la salida. Así que ¿cuáles son los principales cosas que debe buscar en el jmap. Voy a publicar una muestra de ello?
    • Sí, se lo recomiendo a publicar una nueva pregunta acerca de eso. Pero antes de publicar una pregunta, por favor, mira a tu alrededor si no son similares (ya respondidas) hay preguntas, de lo contrario será votada abajo.
    • la verdad es que han logrado construir instantáneas utilizando este método ./jmap de descarga:formato=b,file=snapshot2.bin 12671 y ver a través de visual vm herramienta y comparar instantánea es que lo suficientemente bueno como para indicar?
    • Buscar rarezas. Por ejemplo, hay demasiados casos de (YourClass).
    • Vi este de java.lang.outofMemoryError 8 de instancia, sino la más grande de las instancias de la de char =32367 y java.lang.Cadena =28761. Entonces, ¿qué hace este número indicte que esto muchas characacter han sido de uso o en uso ?

  2. 27

    gcutil da estadísticas en términos de porcentaje de utilización

    -gcutil Option
    Summary of Garbage Collection Statistics 
    Column  Description
    S0      Survivor space 0 utilization as a percentage of the space's current capacity.
    S1      Survivor space 1 utilization as a percentage of the space's current capacity.
    E       Eden space utilization as a percentage of the space's current capacity.
    O       Old space utilization as a percentage of the space's current capacity.
    P       Permanent space utilization as a percentage of the space's current capacity.
    YGC     Number of young generation GC events.
    YGCT    Young generation garbage collection time.
    FGC     Number of full GC events.
    FGCT    Full garbage collection time.
    GCT     Total garbage collection time.

    gc ofrece estadísticas en términos de intervalos de tiempo y espacio utilizado espacio.

    -gc Option
    Garbage-collected heap statistics 
    Column  Description
    S0C     Current survivor space 0 capacity (KB).
    S1C     Current survivor space 1 capacity (KB).
    S0U     Survivor space 0 utilization (KB).
    S1U     Survivor space 1 utilization (KB).
    EC      Current eden space capacity (KB).
    EU      Eden space utilization (KB).
    OC      Current old space capacity (KB).
    OU      Old space utilization (KB).
    PC      Current permanent space capacity (KB).
    PU      Permanent space utilization (KB).
    YGC     Number of young generation GC Events.
    YGCT    Young generation garbage collection time.
    FGC     Number of full GC events.
    FGCT    Full garbage collection time.
    GCT     Total garbage collection time.

    Fuente : Docs

Dejar respuesta

Please enter your comment!
Please enter your name here