Como rastrear o uso de memória de CPU e utilização de disco em Java

Neste artigo, discutiremos alguns comandos, ferramentas e técnicas iniciais para ajudar a rastrear a memória da CPU e a utilização do disco em Java.





As ferramentas Java supervisionam as construções e processos do bytecode Java. Os criadores de perfil Java controlam todos os comandos do sistema e o uso do processador. Isso permite que você chame fundos a qualquer momento.





O criador de perfil padrão fornece uma riqueza de conhecimento, cujo valor depende do propósito da depuração. Algumas ferramentas são melhores para agregar logs para todos os aplicativos e servidores, como Stackify Retrace , configurando e rastreando um log de solicitação automática. Ferramentas: Gerenciamento de desempenho de aplicativos da Stackify, Retrace - oferece aos usuários de Java uma melhor compreensão do design do aplicativo por meio de registro integrado e criação de perfil de código. Junto com o log centralizado e estruturado implementado, é possível acessar todos os logs de aplicativos a partir de um único ponto para todos os aplicativos e servidores.





Aqui, listamos maneiras de demonstrar o rastreamento de memĂłria e CPU em Java para otimizar seu cĂłdigo.  





5 maneiras de monitorar a memĂłria da CPU e o uso do disco em Java!





  1. Comandos básicos do Linux para rastrear o uso da memória da CPU e do disco





    a) livre –m





    O comando transfere a memória disponível e ocupada para sua máquina virtual.





    b) topo





    Este comando Ă© para ver o uso da CPU e da memĂłria.





    Quando você insere 1 no teclado, o top irá disparar e exibir todas as CPUs possíveis e o uso de cada uma.





    Existem 4 CPUs no total - CPU0, CPU1, CPU2, CPU3 - e todas as suas estatĂ­sticas de uso.





    c) meminfo e cpuinfo





    Use os comandos a seguir para obter informações detalhadas sobre memória e processadores de máquina virtual.





    $ cat / proc / cpuinfo





    $ cat / proc / meminfo





    d) MemĂłria da CPU e uso de disco de um processo 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.





    Use comandos limitados / remotos para método de depuração em Java. Um aplicativo que monitora registros na porta especificada não avançará até que a etapa (ii) seja concluída.





    Captura de tela da entrada do aplicativo: Monitoramento para transporte dt_socket no endereço: 9001





    Inicialize o projeto no IDE no modo de depuração e anexe a criptografia ao host e à porta.





    Depure seu cĂłdigo em um Ăşnico servidor com um IDE.








All Articles