quinta-feira, 16 de junho de 2022

Visualizando processos Java rodando em um ambiente Linux com os comandos TOP e PS

Nesse artigo eu vou mostrar duas formas de exibir os processos Java que estão rodando em uma máquina Linux. Isso é muito importante pra ver de forma rápida quantidade de uso de memória, quantidade de intâncias de aplicações rodando, parâmetros passado para JVM, tempo de atividade de cada processo, etc.

 

A primeira é mais resumida, onde as principais informações que vamos ter são: número do processo, usuário responsável, tempo de execução e memória em uso. Para isto basta executar o comando:

 

$ top -bc -n 1 |grep java

 

A segunda é mais longa pois além das informações da primeira, ela também mostra os argumentos passados para a JVM, o que pode ser muito útil quando precisamos ver se alguma configuração feita realmente está sendo utilizada.

 

$ ps aux | grep -i java


        Para esse artigo é só, espero que ajude no dia a dia das atividades de monitoramento e manutenção das aplicações.

quinta-feira, 2 de junho de 2022

Matriz de Rastreabilidade - Mapeando os impactos das alterações do sistema

 

Nesse artigo eu falar sobre Matriz de Rastreabilidade. Essa matriz é um gráfico que mostra a dependência entre partes do sistema.

 

         O objetivo é ter uma ferramenta visual de rápida identificação de áreas que precisam ser testadas para evitar erros em produção devido à falta de testes suficientes após alterações que parecem pontuais, mas na verdade tem um impacto maior.

 

         A matriz possui 2 eixos: Manutenção e Impacto; e é construída colocando o nome dos módulos do sistema (ou partes importantes que se deseja controlar, como por exemplo, um método que é muito usado) em ambos os eixos, e depois marcando os pontos onde há dependências.

 

         Aqui abaixo tem um exemplo:

 


 

         A matriz de rastreabilidade pode ser feita por qualquer pessoa da equipe, mas um DEV tem maior conhecimento dessas dependências e pode dar uma grande ajuda.

 

Essa matriz pode ser bem grande dependendo do tamanho do sistema e do nível de detalhes, que pode mudar de acordo com a necessidade, por exemplo, pode ser mapeado módulos mas também classes ou métodos muito utilizados.

 

Deve ser atualizada sempre que novas dependências forem encontradas e estar disponível para a equipe de testes e homologação calcular o que testar e ter uma ideia do tempo dos testes.