Cómo rastrear el uso de la memoria de la CPU y la utilización del disco en Java

En este artículo, discutiremos algunos comandos, herramientas y técnicas iniciales para ayudar a rastrear la memoria de la CPU y la utilización del disco en Java.





Las herramientas de Java supervisan las construcciones y los procesos del código de bytes de Java. Los perfiladores de Java realizan un seguimiento de todos los comandos del sistema y el uso del procesador. Esto le permite solicitar fondos en cualquier momento.





El generador de perfiles estándar proporciona una gran cantidad de conocimientos, cuyo valor depende del propósito de la depuración. Algunas herramientas son mejores para agregar registros para todas las aplicaciones y servidores, como Stackify Retrace , configurando y rastreando un registro de solicitud automático. Herramientas: Gestión del rendimiento de aplicaciones de Stackify, Retrace: ofrece a los usuarios de Java una mejor comprensión del diseño de la aplicación a través del registro integrado y el perfil de código. Junto con el registro estructurado y centralizado implementado, es posible acceder a todos los registros de aplicaciones desde un único punto para todas las aplicaciones y servidores.





Aquí hemos enumerado formas de demostrar el seguimiento de la memoria y la CPU en Java para optimizar su código.  





¡5 formas de monitorear la memoria de la CPU y el uso del disco en Java!





  1. Comandos básicos de Linux para rastrear el uso de la memoria de la CPU y el uso del disco





    a) gratis –m





    El comando transfiere la memoria disponible y ocupada a su máquina virtual.





    b) arriba





    Este comando es para ver el uso de la CPU y la memoria.





    Cuando ingrese 1 en su teclado, la parte superior se activará y mostrará todas las CPU posibles y el uso de cada una.





    Hay 4 CPU en total (CPU0, CPU1, CPU2, CPU3) y todas sus estadísticas de uso.





    c) meminfo y cpuinfo





    Utilice los siguientes comandos para obtener información detallada sobre la memoria y los procesadores de máquinas virtuales.





    $ cat / proc / cpuinfo





    $ cat / proc / meminfo





    d) Memoria de CPU y uso de disco de un proceso en particular.





    $ ps -p [pid] -o% cpu,% mem, cmd





    CPU Java. .





    e) Java .





    $ps uH –p [pid]





    .





    CPU .





    , , . CPU.





    df –k  –>





    lsof -i :<port> –> ,





    lsof –i: tcp –> TCP





    netstat -plunt  –>









  2. ManagementFactory . MemoryMXBean. MemoryMXBean:





    MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
    
    System.out.println(String.format(“Initial memory: %.2f GB”, 
    
      (double)memoryMXBean.getHeapMemoryUsage().getInit() /1073741824));
    
    System.out.println(String.format(“Used heap memory: %.2f GB”, 
    
      (double)memoryMXBean.getHeapMemoryUsage().getUsed() /1073741824));
    
    System.out.println(String.format(“Max heap memory: %.2f GB”, 
    
      (double)memoryMXBean.getHeapMemoryUsage().getMax() /1073741824));
    
    System.out.println(String.format(“Committed memory: %.2f GB”, 
    
      (double)memoryMXBean.getHeapMemoryUsage().getCommitted() /1073741824));
          
          



    , , . :





    : Java





    : , Java





    : JVM. OutOfMemoryException ,





    : JVM





  3. (-Agentpath)





    java Windows, Linux masOS. -Agentpath - .





    :





    java –agentpath:/usr/profiler/lib/[agent].so  -jar application.jar





    , .





    JProfiler Yourkit .





  4. Java (-Javaagent)





    Java -javaagent , . Java :





    a) premain()  





    b) Pre-Main MANIFEST.MF JAR,





    c) JVM –javaagen





    java -javaagent:agent.jar -jar application.jar





    premain() main() , -javaagent -jar.





    , main() , agentmain() . Agent-Main MANIFEST.MF .





  5. (-Agentlib)





    -Agentlib - , JVM . :





    1) HPROF 





    2) JVM





    1) HPROF: 





    HPROF CPU, Java. . –agentlib:hprof –Xrunhprof HPROF.





    JVM , , java.hprof.txt. 





    java agentlib:hprof=heap=sites Hello.java





    HPROF , .





    javac -J-agentlib:hprof=heap=sites Hello.java





    2)





    –agentlib:jdwp . JVM





     java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:9001, server=y,suspend=y –jar application.jar 





    , IDE.





    Utilice comandos limitados / remotos para el método de depuración en Java. Una aplicación que monitorea registros en el puerto especificado no avanzará hasta que se complete el paso (ii).





    Captura de pantalla de la entrada de la aplicación: Monitorización de transporte dt_socket en la dirección: 9001





    Inicialice el proyecto en el IDE en modo de depuración y adjunte el cifrado al host y al puerto.





    Depura tu código en un solo servidor con un IDE.








All Articles