ERP - Performance/Lentidão/Travamentos - Quais são as verificações iniciais/básicas que podem ser realizadas em situações relacionadas a Performance/Lentidão/Travamentos
Dúvida
Quais são as verificações iniciais/básicas que podem ser realizadas em situações relacionadas a Performance/Lentidão/Travamentos?
Solução
O objetivo deste artigo é trazer uma série de informações que podem ser verificadas em situações relacionadas a Performance/Lentidão/Travamentos.
Utilize esse artigo como base para coleta de informações do incidente que podem levar até a solução do problema. Em caso de abertura de um ticket para Suporte da Senior, é importante que as informações descritas neste artigo já tenham sido realizadas.
Atenção
É imprescindível que você efetue também a análise das informações presentes no artigo ERP - Performance/Lentidão/Travamentos - Onde é possível encontrar informações diversas sobre questões relacionadas a Performance/Lentidão/Travamentos (índice), pois esse artigo leva a vários outros artigos/Documentações que devem ser verificados também para tratativas de situações de Performance/Lentidão/Travamentos.
1. O problema pode estar relacionado a falta de recursos no ambiente e a forma como ocorre a conexão do cliente com o servidor. Desta forma, é necessário que você:
1.1. Identifique os servidores de aplicação utilizados e:
1.1.1. Verifique as informações do sistema (Processador, Memória, HD, ...);
1.1.2. Através do Gerenciador de Tarefas do Windows deve-se verificar se o processamento do servidor está sempre próximo dos 100%;
1.1.3. Verifique a quantidade de memória RAM disponível e quanto de arquivo de paginação de memória Windows já está utilizando;
1.1.4. Se os acessos dos usuários ocorrem via Windows Access e Browser Access é importante lembrar de que processamento será realizado todo no servidor que atender a requisição do WA/BA. Logo, se não houver recursos suficientes para atender todos os usuários, o servidor ficará lento e haverá demora no processamento das requisições;
1.1.5. Se forem utilizados WebServices para integração e AçõesSID/Processos agendados, ainda poderá haver maior número de concorrência no servidor, diminuindo ainda mais a performance.
Atenção
Valide se todos os componentes tecnológicos utilizados para execução do sistema estão de acordo com as Plataformas Homologadas pela Senior, conforme a versão do sistema que você está utilizado.
O uso de recursos não homologados pela Senior poderá acarretar problemas diversos, inclusive perda de performance.
2. Verifique mais informações sobre o incidente:
2.1. Valide se o incidente é generalizado. Por generalizado você pode entender que é uma situação que impacta várias operações distintas do ambiente (Exemplo: Lentidão ao Gerar Notas, ao Movimentar Estoques e ao fazer Lançamentos Financeiros).
Atenção
Se o incidente é generalizado, o melhor plano de ação é você já validar com a equipe responsável pela sua infraestrutura a análise do ambiente como um todo (Recursos de ambiente + Banco de dados). Nesses cenários é muito comum estar ocorrendo:
- Falta de recursos no ambiente;
- Locks grandes no banco de dados causados por uma ou mais rotinas específicas;
- Falta de performance na execução de comandos no banco de dados (que podem ter muitas causas. Exemplo: falta de coleta de estatísticas, falta de índices).
2.2. Valide se o problema é em processo específico. Por específico você pode entender que se trata de situação ocorrendo em processo isolados (Exemplo: situação ocorre no Fechamento de Notas Fiscais, situação ocorre apenas na Geração de Pedidos).
Importante
Ainda em se tratando de incidente relacionado a um processo específico, é necessário sempre evoluir ao ponto mais específico possível sobre o Incidente. Ou seja::
- Se por exemplo o problema está no processo de Mostrar na tela, deve ser esse o foco da análise; ou
- Se o problema estiver no momento de clicar no botão Processar, então deve-se focar nesse ponto e não nos pontos anteriores (como é a questão de Mostrar registros antes de processar).
Tenha sempre em mente que você precisa ter muito bem mapeado, em caso de um incidente em processo específico, o ponto onde está ocorrendo o incidente com a maior especificidade possível, seja o ponto relacionado a uma Tela, um Relatório, um Processo Agendado, um WebService ou qualquer outro artefato do sistema.
2.3. Valide se a situação identificada relacionada a performance/lentidão/travamento sempre existiu ou passou a ocorrer após alguma mudança no ambiente;
2.3.1. Valide quando o processo foi executado com sucesso pela última vez e quanto tempo ele levou para ser executado;
2.4. Valide se houve alguma mudança no ambiente que pode ter sido o gatilho que possa justificar o incidente. São exemplos de mudanças:
- Atualização de versão do sistema Senior;
- Atualização de versão do sistema operacional ou banco de dados;
- Mudança de Servidor;
- Mudança de processo/parametrização do sistema;
- Aplicação de uma nova customização;
- Ativação de uma nova integração;
- Aplicação de uma personalização e/ou consistência de base.
Importante
O simples fato de ter havido uma atualização do sistema Senior e passar a ocorrer algum tipo de lentidão/travamento não indica necessariamente de que há uma falha na versão. Uma situação que é comum ocorrer é que o DBA da empresa, para otimizar operações do banco de dados, cria índices personalizados na base de dados e não os cadastra no CBDS. Desta forma, ao ser efetuada uma atualização da base, os índices são perdidos, o que pode então impactar na performance do sistema.
2.4.1. Caso a situação tenha sido identificada após alguma mudança, verifique quanto tempo levava e quanto leva agora para execução do processo. É importante que neste levantamento você verifique quantos movimentos/registros estão envolvidos no processo.
Importante
A quantidade de registros envolvidos é sempre importante nesta análise, pois, por exemplo, você não pode comparar o tempo de emissão de uma Nota Fiscal com 10 itens do tempo de emissão de uma Nota Fiscal com 500 itens. Nestes casos, é necessário sempre fazer comparativos a nível da quantidade de itens gerados/manipulados pelo sistema, fazendo um comparativo por média de tempo de processamento por item.
2.4.2. Caso a situação sempre ocorreu (ou seja, sempre houve o problema de performance/lentidão), verifique exatamente o tempo de processamento e quantidade de movimentos/registros envolvidos. Levante junto com o usuário chave da rotina qual o tempo ideal na visão dele (um tempo que, obviamente, deverá ser factível com a quantidade de registros a serem processados).
Observação
Em caso de uma situação de lentidão generalizada do sistema, o item 2.4.2. não se aplica.
2.5. Identifique detalhes que envolvem o processamento da rotina. São exemplo de detalhes a serem validados:
- Forma de processamento:
- Local: sempre na Estação de Trabalho do usuário (fora do Servidor de Middleware/Aplicação);
- Síncrona/Assíncrona: Execução do Servidor de Middleware.
- Se o processo é executado localmente, a conexão da estação com o Servidor é via VPN ou alguma camada de Acesso Virtualizado (como por exemplo Citrix ou Go-Global);
Importante
- Lembre-se que:
- Estação de Trabalho é uma instalação do sistema em um Computador que não é o Servidor de Aplicação e o Servidor de Middleware;
- Conexões realizadas via Windows Access e Browser Access sempre possuem o processamento sendo executado no Servidor do Middleware e não na Estação de Trabalho do usuário.
2.6. Identifique detalhes dos registros processados
É imprescindível que você colete informações de como o processo está sendo executado. Por exemplo: se o ponto de lentidão/travamento ocorre na emissão de uma Nota Fiscal, são exemplos de detalhes:
- Quantidade de Itens da Nota Fiscal;
- Qual a tela utilizada;
- Quais as opções e filtros utilizados na tela.
3. Efetue o acompanhamento do incidente:
3.1. Acompanhe o processo junto com o usuário chave, coletando:
- Tempo exato do processo;
- Vídeo do processo sendo executado;
- Log do SQLMon (TECNOLOGIA - SQLMon - Quais são os passos para gerar o Log do SQLMon)
- Analise a repetição de comandos dentro do Log;
- Execute os comandos verificados diretamente no banco de dados;
- Verifique se o comando que é apresentado no SQLMon não está presente em uma Regra customizada;
4. Valide utilização de regras nos processos envolvidos:
4.1. SQLs em regras LSP
Avalie os SQLs executados em regras personalizadas (sejam regras LSP de fato ou regras de WebServices personalizados)
Avaliação que você deve realizar:
- Selects que estejam sendo realizados sem utilização da chave completa do registro da tabela (Exemplo: está sendo efetuado o select para busca de uma nota fiscal na tabela E140NFV, mas não está sendo utilizada a chave completa do registro no banco de dados - lembre-se de que a chave completa poderá ser verificada através da visualização de Tabelas/Campos - atalho F8);
- Selects que estejam buscando todos os campos da tabela indevidamente (“select * from”).
4.1.1 Para verificar as regras, siga os passos abaixo:
4.1.1.1. Acesse o menu Recursos / Implementações / Regras / Editar;
4.1.1.2. Digite o usuário/senha de acesso as regras;
4.1.1.3. No Editor de Regras, acesse o menu Regra / Visualizar regras...
4.1.1.4. Nas regras que serão abertas, efetue a análise indicada.
4.1.2. Para verificar as regras dos WebServices, siga os passos abaixo:
4.1.2.1. Caso você queira identificar todos os WebService/Portas customizadas da base de dados, verifique as informações no artigo ERP - WebServices - Como encontrar os WebServices/Portas customizadas na base de dados;
4.1.2.2. Acesse o menu Recursos / Implementações / Web Services / Editar;
4.1.2.3. Selecione o WebService/Porta customizado e clique no botão Regra, conforme exemplo abaixo:
4.1.2.4. Analise a regra do WebService;
Importante
Para WebServices não há uma forma de visualizar todas as regras ao mesmo tempo. Então a análise deverá ser realizada regra a regra.
4.2. Monitoramento de customizações e execução de processo sem identificadores de regras ativos
4.1. Para realizar monitoramento de regras, verifique as informações presentes no artigo TECNOLOGIA – Ferramentas Customizadas – Como realizar o Monitoramento de Customizações.
O objetivo de monitorar customizações é validar o tempo de execução de cada customização.
Observação
O monitoramento não está disponível para execuções de WebServices (seja em Modo Síncrono ou Modo Local via MCDebug). O monitoramento é disponibilizado apenas para processos realizados dentro de telas do sistema.
4.2. Você pode executar processos desativando todos os identificadores de regras temporariamente para validar o tempo de execução dos processos.
Esse procedimento é indicado para ser realizado em ambiente de Homologação ou em ambiente de Produção de forma totalmente restrita (onde haja certeza de que nenhum processo esteja sendo realizado).
5. Execute comparação de Logs coletados em momentos em que ocorre e que não ocorre o incidente.
O objetivo dessa comparação é validar diferenças de comandos que são executados a fim de tentar identificar a causa do incidente. Para essa comparação você poderá utilizar aplicativos que permitam esse processo como, por exemplo, o aplicativo Notepad++ que possui a funcionalidade de comparação como um Plugin adicional.
6. Verifique apoio de DBA da sua empresa para análises.
Um dos principais pontos que você precisará de apoio está voltado para:
- Verificação de Locks na base de dados
- Coleta de traces dos processos.
7. Informações adicionais
- Se existirem incidentes relacionados a performance/lentidão/travamento no mesmo ambiente, mas a situação ainda não é caracterizada como um incidente generalizado (ou seja, a situação ainda é isolada em alguns processos ou parte deles), é importante que as análises seja realizadas em paralelo, até que tenha-se certeza de que se trata da mesma causa raiz;
- Caso você tenha contrato sistemas da Senior em ambiente Cloud, a equipe de IT Services disponibiliza profissionais para essa análise - faz parte do contrato realizado com a Senior;
- Caso você tenha os sistemas da Senior em ambiente OnPremise, você pode contatar o analista de Infraestrutura/DBA da sua empresa ou poderá contratar esses profissionais através da Senior (mediante aprovação de proposta comercial).
Observação
Para mais informações sobre o questões relacionadas a Performance/Lentidão/Travamentos do Gestão Empresarial | ERP, consulte o artigo ERP - Performance/Lentidão/Travamentos - Onde é possível encontrar informações diversas sobre questões relacionadas a Performance/Lentidão/Travamentos (índice).