Pular para o conteúdo principal

Monitorando o Tomcat com Java VisualVM

Olá pessoal, hoje iremos ver como monitorar o serviço do Tomcat utilizando o aplicativo Java VisualVM, onde podemos analisar consumos de CPU, Memória, Threads, entre outros.

O Java VisualVM


O java VisualVM é um aplicativo que acompanha o JDK que permite o monitoramento dos serviços que estão sendo executados na JVM, com ele podemos analisar consumo de CPU, Mémoria (Heap, Stack, PermGen), Classes inicializadas, Threads, etc.

Por default esta localizado sobe o seguinte diretório:

JAVA_HOME/bin/jvisualvm.exe


O Tomcat 

O Tomcat é um Web Container desenvolvido pela Apache, é um dos conteiners mais utilizados e difundidos no mercado, atualmente esta na versão 7.0.35, segue links para download e informações:

http://tomcat.apache.org/download-70.cgi
http://tomcat.apache.org/tomcat-7.0-doc/index.html

Configurando o Tomcat

Para realizar a configuração do monitoramento do Tomcat através do Java VisualVM, temos que realizar algumas configurações na propriedade Java Options, para isso, vamos acessar o Tomcat Monitor e ir na aba Java, lá devemos adicionar as seguintes linhas:

-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

Estas linhas de configurações são necessárias para o monitoramento do serviço através de JMX, sendo elas a porta de acesso, se a conexão deve ser por SSL e se temos autenticação para realizar o acesso, de acordo com a imagem abaixo:



Configurando o Java VisualVM

Após toda configuração no Tomcat ser realizada, vamos analisar o Java VisualVM para entender seu funcionamento, sua interface de inicialização é a abaixo:


A configuração para acessar o serviço é muito simples, tudo é feito através de uma conexão JMX, para isso vamos no menu File e em Add JMX Connection, a seguinte interface será exibida e devemos informar os dados de conexão e o display name (este opcional)


Após isso já temos o serviço do Tomcat sendo monitorado pelo Java VisualVM, de acordo com a tela abaixo:


A principal aba de recursos de monitoramento é a Monitor, onde podemos analisar o consumo de CPU, Memória, Classes que estão inicializadas e as Threads que estão rodando no momento, abaixo podemos analisar esta tela:


Um outro recurso interessante é o monitoramento das Threads, localizado na aba Threads, de acordo com a tela abaixo:

O Java VisualVM é uma ferramenta interessante para dimensionar o consumo de nossas aplicações dentro do servidor de aplicação, ela possui vários recursos interessantes que podem ser usados para diagnosticar gargalos e evitar consumos excessivos de Mémoria, CPU, entre outros.

Para mais detalhes e funcionalidades desta ferramenta, consulte a documentação oficial da Oracle:


Até a próxima.

Comentários

  1. Gostaria de deixar a recomendação para o pessoal que está começando também fazerem o download gratuito do e-book API RESTful com Spring Boot.
    Existe um capitulo somente de VisualVM.
    Baixem GRÁTIS no link → https://www.javaavancado.com/ebook-spring-boot/index.html

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Utilizando LocalDate, LocalDateTime e LocalTime na Prática

Tudo bem pessoal, hoje iremos avaliar e analisar operações de manipulação de Datas envolvendo a JavaTime API introduzida no Java 8.

Exemplos da java.time API
Já se passaram alguns anos desde o lançamento do Java 8 e mesmo após este período, há empresas que desconhecem o poder da java.time API, esta foi uma nova API de datas introduzida no Java 8 visando resolver problemas que tínhamos com as velhas classes Date e Calendar.

Vamos mostrar vários exemplos práticos do uso da API:
Criação de objetos No exemplo abaixo, estamos criando os objetos para manipulação de datas, perceba que temos 3 tipos, sendo LocalDate para manipular datas, LocalDateTime para manipular data/hora e LocalTime para horas:
LocalDate localDate = LocalDate.now(); LocalDateTime localDateTime = LocalDateTime.now(); LocalTime localTime = LocalTime.now();
Utilizando formatação Aqui realizamos a operação de formatação, perceba que não foi necessário utilizar a classe SimpleDateFormat, que usaríamos em conjunto com D…

Lendo e Manipulando arquivos CSV com Java

Olá hoje veremos como realizar a leitura e manipulação de arquivos CSV com Java, mostrando que as novas versões da plataforma Java deixaram algumas tarefas simples de serem realizadas.

Exemplo de Arquivo Hoje em dia é comum ao realizar integrações ou carga de dados o uso de arquivos CSV, isto porque, este arquivo possui uma estrutura de fácil entendimento e simples de manipular na maioria das plataformas de desenvolvimento.

Para realizar a leitura dos dados vamos manipular um arquivo com as seguintes colunas: namecpfagephone address:

name;cpf;age;phone;address caio;123456789;20;1145223643;AvenidaPaulista vinicius;147852369;18;1125253625;AvenidaManoel sandra;963258741;30;1174587858;RuaTeixeira regina;125478522;40;1145254536;RuaFernando fernando;785245563;42;1145253669;RuaPereira augusto;456123014;50;1125363633;AvenidaPaulinia maria;456123789;10;1125455525;AvenidaNossaSenhora
Para representar os dados em objetos Java iremos utilizar a seguinte classe:

importlombok.AllArgsConstruc…

Versionamento de Banco Dados com Flyway

Olá pessoal, hoje iremos analisar e aprender como realizar o versionamento e gerenciamento das bases de dados relacionais utilizando o framework Flyway.

Versionamento de Banco Dados Ao trabalhar com desenvolvimento de sistemas é comum realizarmos o versionamento, isso porque uma aplicação pode necessitar de correções, novas funcionalidades e evoluções, onde para garantir a compatibilidade e cuidar do seu ciclo de vida, geramos versões onde é especificado quais itens estão presentes em cada release.
Vamos imaginar seguinte cenário: Sistema ERP1.0.0: Entrega dos módulos Financeiro e RH;1.1.0: Entrega do módulo Contas a Receber. Perceba que a ideia é controlar o que cada versão possui de diferente, e para controlar essas mudanças no lado da aplicação existem várias técnicas e ferramentas, mas e para controlar as mudanças no lado do Banco de dados ? 
Para isso podemos utilizar ferramentas de versionamento que ajudam a realizar este controle, a ferramenta que iremos utilizar é o Flyway.
Con…