jstat: Virtual Machine estadísticas herramienta de monitoreo

"La comprensión en profundidad de la Máquina Virtual de Java", una versión del libro JDK utilizada es de 1.6. 4.2.2 Ejemplos del libro no es el mismo rendimiento y se describe en el libro bajo jdk1.8, en este registro.

Debido a que la máquina virtual jdk1.8 Hotspot se ha eliminado de forma permanente generaciones, las constantes de cadena se trasladaron a la memoria del montón. Agregado metaespacio (espacio tridimensional), el método de la zona para mover metaespacio. Metaespacio utiliza la memoria local, tamaño de la memoria está limitada por la máquina física.

jstat comando se utiliza para supervisar las máquinas virtuales que se ejecutan diversos herramienta de estado de la línea de información. Puede mostrar una máquina virtual en el proceso de carga de clases, la memoria, la recolección de basura, compilador JIT y otros datos de funcionamiento.

Un ejemplo de la escritura ejemplar

1, un nuevo controlador

@RestController
@RequestMapping("/jvm/jstat")
public class B_Jstat {
    Logger logger = LoggerFactory.getLogger(B_Jstat.class);
    static List<OOMObject2> list = new ArrayList<>();

    static class OOMObject2{
        public byte[] placeholder = new byte[1024 * 1024];  //1M byte数组
    }
    public static void fillOutOfMemory(int num) throws InterruptedException{
        list = new ArrayList<>();
        for (int i = 0; i < num ; i++){
            TimeUnit.MILLISECONDS.sleep(100);
            list.add(new OOMObject2());
        }
    }
    //属性list填充1000个OOMObject2实例,模拟堆内存溢出
    @GetMapping("/obj")
    public String outOfMemory(HttpServletRequest request) throws Exception{
        fillOutOfMemory(1000);
        return "完成";
    }
}

2, iniciar el servicio, la memoria máxima y mínima dinámico se define a 512m. nohup java-jar -Xms512m -Xmx512m primavera-boot-lean.jar y

3, el directorio raíz en el directorio java / jdkXXX / bin, utilizando un monitor de máquina virtual jstat estado de funcionamiento, que se muestra en la Figura 1  

4, envía una solicitud HTTP: // XXX: 8080 / JVM jstat- obj / /  se cambia, los datos de seguimiento.

jstat -gc comando 6602 5000 100 para explicar:

-gc función es supervisar las condiciones de almacenamiento dinámico de Java, incluyendo el área de Edén, dos áreas de supervivencia, tales como la capacidad del año viejo, espacio utilizado, el tiempo total de GC y otra información.

6602 es el identificador de proceso de la primavera-boot-lean.jar este servicio

5000 representa cinco segundos una vez que el proceso de investigación

100 indica un total de 100 consultas

Figura 1 parámetro para explicar

S0C    survivor区0总容量,单位KB
S1C    survivor区1总容量,单位KB
S0U    survivor区0使用量,单位KB
S1U    survivor区1使用量,单位KB
EC     Eden区总容量,单位KB
EU     Eden区使用量,单位KB
OC     老年代总容量,单位KB
OU     老年代使用量,单位KB
MC     Metaspace总容量,单位KB
MU     Metaspace使用量,单位KB
CCSC   Metaspace中Klass Metaspace总容量,单位KB
CCSU   Metaspace中Klass Metaspace使用量,单位KB
YGC    Minor GC 次数
YGCT   Minor GC 消耗总时间,单位S
FGC    FullGC 次数
FGCT   FullGC 消耗总时间,单位S
GCT    GC总消耗时间,单位S

B_Jstat la lista es referencias fuertes, originando toda nueva OOMObject2 () no puede ser reciclado mecanismo de recolección de basura. 1 puede verse en la figura.

1, el importe de la vejez se eleva gradualmente OU.

2, OU alcanzado el máximo, la máquina virtual no puede copiar objetos de la unidad organizativa, por lo que la UE no puede reducir (las últimas hileras, la UE no puede ser reducida).

3, también se puede ver en la región superviviente figura también puede ser tomado de una parte de la capacidad de la región de Edén.

 

Publicado 51 artículos originales · elogios ganado 14 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/u010606397/article/details/82807937
Recomendado
Clasificación