Script para análise de performance
Objetivo
Essa documentação tem por objetivo prover orientações para o fluxo de análise de performance dos sistemas da Ema, de modo que as ações realizadas pelas áreas envolvidas neste processo sejam organizadas e eficazes para a resolução de cada demanda.
Fluxo de atendimento
O fluxo de atendimento para análise de performance deve ser iniciado por meio da abertura de uma tarefa com o time de Suporte. Nesta primeira etapa a equipe de Suporte irá levantar informações acerca da situação relatada pelo cliente, onde deverá ser realizada uma pré-análise do ambiente onde o sistema da Ema está operando. O time de Suporte deverá detalhar o comportamento apresentado pelo sistema no momento em que o problema relatado pelo cliente ocorre.
Durante a etapa de pré-análise, o time de Suporte poderá identificar algum gap de performance. A equipe poderá repassar ao cliente os pontos de verificação para que ele possa prover às ações corretivas. Caso o problema de performance persista ou caso seja considerado pertinente uma análise relacionada à infraestrutura de TI do cliente para identificação do problema, a equipe de TI da Ema será acionada para prestar apoio. A equipe de TI deverá ser acionada após a avaliação do segundo nível de atendimento do Suporte, para que outros aspectos relacionados à situação relatada pelo cliente possam ser avaliadas.
A equipe de TI da Ema ficará responsável por avaliar a estrutura de servidores, estações de trabalho e/ou rede do cliente, bem como poderá conferir se o banco de dados utilizado pelo sistema da Ema está parametrizado corretamente, de acordo com os padrões que constam em nossa documentação. Todas estas atividades serão executadas de maneira remota.
Se a equipe de TI da Ema identificar gaps de performance na infraestrutura do cliente, eles serão repassados ao responsável pelo início do atendimento da tarefa, para que ele estabeleça contato com o cliente e realize um feedback. Os pontos de atenção avaliados pela equipe de TI serão encaminhados com orientações de correção e/ou sugestões de melhoria. Caso nenhum gap seja identificado pelo time de TI, o atendimento poderá ser escalado para avaliação da equipe de Desenvolvimento ou devolvido para equipe de Suporte, dependendo da situação. Se for necessário, a equipe de TI da Ema poderá se reunir com o cliente presencialmente na Ema ou remotamente via call, para avaliação dos gaps identificados ou para apoio técnico.
Se o atendimento for escalado para o time de Desenvolvimento, a equipe irá realizar uma análise com base em todo levantamento de informações que constam na tarefa, em busca de algum problema no produto que possa estar interferindo na baixa performance da operação relatada pelo cliente, bem como irá verificar alguns aspectos relacionados ao banco de dados que estiverem ao nosso alcance, como, por exemplo, a necessidade de criação de índices.
Se o problema de performance persistir ou não for identificado após todas as verificações realizadas pelas áreas de negócio da Ema (Operações, TI e Desenvolvimento), será avaliado o acionamento de uma empresa parceira para avaliação do banco de dados do sistema da Ema, podendo a empresa ser acionada diretamente pela Ema ou pelo próprio cliente.
Atividades de cada área
Suporte (Operações)
Levantamento de informações acerca da situação relatada pelo cliente
- Descrever o comportamento da situação apresentada, obtendo detalhes do momento em que a operação realizada pelo cliente ocorre, considerando:
- Ocorre somente na estação de trabalho?
- Ocorre somente no servidor?
- Ocorre na estação de trabalho e no servidor?
- Foi testado em outro ambiente? (como, por exemplo, no ambiente de homologação do próprio cliente)
- Atualização da versão dos sistemas da Ema;
- Atualização do sistema operacional;
- Implementação de novos recursos;
- Instalação e/ou configurações de aplicativos terceiros (antivírus, aplicativos de internet banking, firewalls, ferramentas, utilitários, etc.);
- Manutenção preventiva ou corretiva.
- Instalação ou substituição de switches;
- Instalação ou substituição de roteadores;
- Instalação de novos ativos.
- Existem processos que fazem conexão em bases de dados de terceiros?
- Existem agendamentos programados?
- Dados para simulação da operação no ambiente interno e/ou no ambiente do cliente;
- Comparar o tempo do procedimento homologado em relação com a situação apresentada pelo cliente;
- Frequência com que a situação ocorre;
- Há quanto tempo o problema vem ocorrendo;
- Informações sobre o local onde o problema ocorre:
- Se houve alguma mudança recente na estrutura do servidor e/ou da estação de trabalho, tais como:
- Se houve alguma mudança recente na estrutura da rede, tais como:
- Se for possível, grave um vídeo da operação, apresentando o comportamento informado pelo cliente.
- Procure identificar as consultas mais lentas que ocorrem nas operações do sistema, ou se às consultas na base de dados que vinculadas a situação repassada pelo cliente podem estar apresentando lentidão. Isto é um requisito para análise da área de desenvolvimento e no próximo tópico serão apresentados recursos para realização dessa análise.
- Para clientes que utilizam DOX:
Pré-análise da estrutura
- Avaliação do consumo dos recursos de hardware:
- CPU;
- Memória RAM;
- Disco;
- Rede.
- Qual a velocidade da rede de computadores?
- 100Mbps ou 1Gbps?
- O uso de rede gigabit é um requisito para uso do sistema via atalho nas estações.
- O servidor e/ou estação de trabalho utiliza o sistema da Ema via atalho por meio de uma rede sem fio?
- Não haverá um bom desempenho do sistema na rede sem fio, em certos casos esse cenário pode comprometer muito o uso da aplicação.
- Velocidade do link de internet:
- Para os usuários que realizam acesso externo ao servidor para uso do sistema, a velocidade de internet (tanto na origem, quanto no destino) pode influenciar na performance.
- Caso exista antivírus no servidor e/ou na estação de trabalho, solicite ao cliente que inclua o client e/ou os micro serviços do sistema como exceção na varredura e também na verificação em tempo real, bem como realize um teste desativando o antivírus temporariamente;
- Verificar o consumo de CPU e memória RAM;
- A reinicialização dos micro serviços pode ajudar na resolução do problema.
- Logs dos micro serviços:
- Avaliar os logs dos micro serviços em busca de erros que possam ajudar na identificação do problema
- Verificar a existência de plug-ins de internet banking;
- PEX:
- Identifique se o processo apresentado pelo cliente é uma personalização.
- Verifique o arquivo midas.dll:
- A versão do arquivo midas.dll utilizada pelo sistema da Ema deve ser a 21.0.17707.5020, com data de 06/11/2014;
- Este arquivo deve estar localizado no diretório do executável da Ema, bem como poderá estar no diretório C:\Windows\SysWOW64;
- Verifique se há no servidor e/ou na estação de trabalho outros arquivos midas.dll em versões incompatíveis.
- Utilize o recurso Validar estrutura de banco de dados, disponível no sistema em Configurações > Utilitários, para validar se existem campos faltando no banco ou demais ajustes que podem ser feitos. Quando o banco de dados for do tipo Oracle, também existe a opção de Validar índices do banco.
- Para verificar as consultas mais lentas no banco de dados, temos um parâmetro no sistema para habilitar o log das querys que consomem mais tempo. O tempo a ser informado ficará sob critério de análise, pois é algo que depende de cada operação. A sugestão é logar tempos superiores a 10 segundos. Este parâmetro está localizado no Ema Configurador, conforme a imagem a seguir:
- Para análise de consultas lentas no banco de dados (quando o cliente utilizar banco de dados do tipo Oracle), temos um recurso disponível no SQL Developer que pode ajudar na identificação das querys . Esta opção pode ser acessada no SQL Developer através do menu Ferramentas > Monitor de SQL em Tempo Real.
Análise do ambiente de TI
- Uso de recursos de hardware do servidor e/ou da estação de trabalho:
- CPU;
- Memória RAM;
- Disco;
- Rede.
- Avaliação do hardware utilizado;
- Avaliação da largura de banda de rede (100Mbps/1000Mbps)
- Avaliar o uso do host de virtualização ou solicitar para que o cliente faça essa avaliação (caso o servidor do sistema esteja virtualizado);
- Logs do sistema operacional:
- Logs de aplicação, sistema e segurança.
- Aplicativos de terceiros:
- Avaliar se existem outros aplicativos (além do sistema da Ema) que possam estar interferindo na performance ou no uso adequado de nossas aplicações.
- Processos em execução:
- Verificar se existe algum processo que possa estar interferindo de maneira significativa na performance do servidor e/ou estação de trabalho, bem como se o processo pode ser um software malicioso.
- Antivírus:
- Avaliar se os executáveis da Ema já foram configurados adequadamente como exceção.
- Largura de banda e desempenho da rede:
- Se necessário, avaliar se o tráfego de rede dos servidores e/ou das estações de trabalho correspondem ao que está sendo apresentado nas configurações da interface de rede;
- Ferramenta para apoio na análise da banda de rede: https://www.iperiusbackup.net/pt-br/iperf-ferramenta-para-medir-a-largura-de-banda-e-o-desempenho-da-rede-tcp-udp-sctp/
- Internet:
- Conferir a velocidade e integridade do link de internet, caso ele esteja envolvido na entrega do serviço para uso das aplicações da Ema.
Monitoramento de recursos de hardware
- Se for necessário realizar o acompanhamento do consumo dos recursos de hardware do servidor e/ou da estação de trabalho por um período de tempo, será realizada a instalação de uma ferramenta de monitoramento do servidor, onde serão avaliados os seguintes aspectos:
- Uso de CPU;
- Uso de memória RAM;
- Uso de disco;
- Uso da rede:
- A ferramenta a ser utilizada será a HetrixTools;
- Será disponibilizado, se necessário, um link para acesso ao relatório de desempenho;
Banco de dados
- Quando houver incidentes relacionados ao tamanho do banco de dados, inicialmente avaliar tabelas com prefixo XX, ZZ ou YY que podem ser relacionadas a conversão de dados e dropar (excluir) essas tabelas;
- Verificações que poderão ser realizadas em cada tipo de banco:
- Verificação relacionada a parametrização da base de dados, tais como:
- Parâmetros de sessão, transação e processos;
- Quantidade de memória alocada para a base;
- Arquivos de log do Oracle (alert log): C:\app\diag\rdbms\orcl\orcl\trace
- Atualização das estatísticas da base de dados: https://kb.ema.net.br/link/765#bkmrk-1%C2%AA-op%C3%A7%C3%A3o%3A-execute-db
- Versão do Oracle (Full ou XE);
- Tamanho da base de dados (Dumps e data files);
- Validar estrutura do banco de dados pelo sistema (DOX/ERP);
- Em último caso, o backup/restore do schema ou a reinstalação do banco Oracle pode resolver
- Verificação relacionada a parametrização da base de dados, tais como:
- Quantidade máxima de processos alocada para a base
- Utilizar comando de manutenção VACCUM
- Tunning de banco de dados em ambientes Windows
- pgTune (https://pgtune.leopard.in.ua/)
- Backup/restore do banco de dados;
- Utilização do utilitário Gfix para correção de possíveis erros na base de dados.
- Oracle:Postgres:
- Firebird:
Desenvolvimento
Análise do produto
- Avaliação de pontos que podem estar com problemas e comprometendo a operação relatada pelo cliente.
- Para este ponto, é de extrema importância que exista uma simulação do problema, mesmo que aqui não ocorra, temos que ter exatamente os passos a passos de como o procedimento está sendo executado pelo cliente, quais telas são utilizadas, quais teclas ou atalhos são utilizados ou se utilização feita com o mouse, etc.
- Customizações e/ou funcionalidades que possam estar consumindo memória (vazamento) e/ou com codificação que possa ser aperfeiçoada.
Ações que podem ser realizadas a nível de banco de dados:
- Avaliação de índices na base;
- Problemas relacionados a triggers, functions, procedures, jobs, etc;
- Avaliação de querys (Conforme os dados obtidos na etapa de pré-análise).
Terceiros
- Escopo dos serviços prestados por nossos parceiros:
- Postgres
- Avaliação de problemas relacionados a performance no sistema da Ema;
- Migração de banco de dados Oracle para Postgres (no Linux);
- Migração de banco de dados Postgres do Windows para Linux;
- Implantação de banco de dados Postgres (no Linux) para novas contas.
- Oracle (Box Tecnologia)
- Avaliação de problemas relacionados a performance no sistema da Ema;
- Avaliação da estrutura do banco de dados;
- Migração de banco de dados Oracle do Windows para Linux.
- Banco de dados