Análise de Performance
Neste capítulo, seguirá um checklist para consulta sobre os seguintes problemas: Sistema abre com a tela toda branca, sistema não abre, impressora não funciona, lentidão.
- DEP
- Performance - Visão geral
- Registrando / Atualizando MIDAS.DLL
- Script para análise de performance
DEP
DEP - (Prevenção de execução de dados): É um recurso de segurança que vem de fábrica nos sistemas operacionais Microsoft Windows. Este recurso destina-se a impedir a execução de códigos de uma região da memória não-executável em um aplicativo ou serviço.
Este recurso pode ser ativado tanto nos servidores quando nas estações de trabalho dos usuários, isso vai depender de como nossos produtos estão instalados.
Configuração da DEP
Performance - Visão geral
Esta IT tem por objetivo apresentar alguns pontos que podem ser avaliados durante a análise de desempenho (lentidão) de servidores e estações de trabalho Windows, quando o servidor/estação apresenta lentidão excessiva no uso com as aplicações da Ema.
Esta análise deve ser realizada por intermédio do responsável pela infraestrutura de TI da empresa (cliente), quando os sistemas da Ema estiverem prejudicando o andamento dos processos de negócios devido ao seu baixo desempenho.
Para os servidores, todas as versões do sistema operacional Windows Server 2008 R2, possuem um recurso muito útil chamado de “Performance Monitor", ou "Monitor de Performance", que pode ser encontrado nas "Ferramentas Administrativas". Este recurso consegue utilizar coletores de informações sobre todo o hardware e software, e emitir um relatório ao final, diagnosticando a situação atual.
Uma análise de desempenho deve ser realizada preferencialmente de maneira holística, pois os servidores e os demais ativos de TI atuam sobre uma topologia de rede que costuma ser diferente em cada cenário, e isto pode influenciar diretamente o desempenho das aplicações da Ema.
Em suma, não somente o servidor pode ou deve ser analisado, mas a rede como um todo: Servidores físicos, servidores virtuais, estações de trabalho, ativos de rede, serviços de rede, sistemas operacionais, etc.
A seguir, encontram-se alguns itens que de acordo com nossa experiência, comumente costumam influenciar no desempenho do servidor:
Hardware
Processador:
Verificar se a capacidade de processamento do servidor está suportando a carga de processos atual.
Memória RAM:
Verificar a quantidade de memória RAM disponível, além da memória RAM que está sendo utilizada. Computadores que trabalham utilizando o limite da memória RAM, realizando paginação em disco, apresentam lentidão excessiva. Este é um dos problemas mais comuns. Se necessário, realizar testes para diagnóstico de problemas na memória RAM. O Windows Server possui um recurso chamado "Diagnóstico de Memória do Windows", se for necessário.
Disco (HD):
Verificar o espaço em disco livre, a integridade e o desempenho do HD. Servidores antigos possuem discos mais lentos. Pouco espaço livre em disco é um risco muito grande, não só para os sistemas da Ema, mas para o servidor. A integridade e o desempenho do disco pode ser verificada com aplicativos de terceiros, ou com o próprio Monitor de Performance do Windows.
Servidor Físico:
Verificar a integridade e o tempo de vida do servidor físico. Servidores antigos costumam não suportar os sistemas da Ema e diversas outras aplicações, com um desempenho satisfatório.
Software
Drivers:
Conferir se todos os drivers estão devidamente instalados e atualizados.
Prevenção de Execução de dados (DEP):
Incluir os executáveis da Ema como exceção no DEP. Isto ajuda a evitar diversos problemas que já enfrentamos.
Arquitetura do Sistema Operacional:
Recomenda-se que a arquitetura do S.O. seja de 64 bits, para que o servidor possa utilizar todo o desempenho disponíveis nos processadores atuais. Sistemas operacionais de 32 bits reconhecem até 3,3 GB de memória RAM por padrão. Algumas versões de 32 bits conseguem utilizar mais de 3,3GB de memória RAM, mas muitos aplicativos não conseguem utilizar mais que o limite desta arquitetura quando instalados, como por exemplo, o banco de dados Oracle.
Serviços do Windows:
Verificar se existem serviços que podem ser desativados, para que não comprometam ou influenciem no desempenho do servidor desnecessariamente.
Antivírus:
A existência de antivírus pode prejudicar ou comprometer totalmente o desempenho dos sistemas da Ema. Recomenda-se que os diretórios e os executáveis utilizados pela Ema sejam adicionados como exceção no antivírus para evitar problemas.
Vírus:
Poucos servidores possuem antivírus. Muitos malwares costumam afetar o desempenho do servidor, neste caso, também é muito importante verificar a existência de vírus.
Plugin Internet Banking:
Os plugins costumam interferir no funcionamento do nosso software. Eis alguns: GBplugin, Warsaw e SCPVISTA (Bradesco). O sistema pode apresentar lentidão, travamento ou ainda, fechar sozinho em alguns casos, sem apresentar mensagem de erro. Verificar o uso de qualquer internet banking nas estações de trabalho ou nos servidores e removê-los, pois, eles não são compatíveis com as aplicações da Ema.
Serviços Virtuais:
Verificar a integridade dos sistemas de virtualização, realizar os últimos updates disponíveis para o hipervisor.
Outros aplicativos:
A existência de diversos outros softwares instalados no mesmo servidor onde encontram-se os sistemas da Ema influenciam diretamente no desempenho e/ou na funcionalidade dos sistemas. O servidor deve ser dedicado aos sistemas da Ema.
Relatórios de Problemas:
Caso ocorra algum problema muito específico, este recurso que está disponível na Central de Ações, no Painel de Controle, pode ajudar a identificar a origem dos erros. Pesquisar pela opção "Exibir todos os relatórios de problemas"
Infraestrutura:
Internet:
Para cenários que utilizam a comunicação via internet para uso dos sistemas da Ema, é de suma importância que o link de internet tenha uma velocidade compatível com todos os recursos que são utilizados na rede. Conferir a velocidade contratada, o consumo de banda do link e a integridade do sinal. Se necessário, solicitar o aumento de velocidade ou outras providências pertinentes ao problema relatado.
Rede:
O cabeamento deve estar devidamente protegido de interferências e agentes externos que possam prejudicar a integridade dos cabos. A comunicação entre os hosts não deve sofrer quedas constantes ou perdas de pacotes. Avaliar a largura de banda da rede e os demais ativos relacionados a transmissão dos dados (switches, roteadores, access points, etc).
Ainda em relação a Rede, é possível realizar testes de largura de banda através do aplicativo Iperf: http://brainwork.com.br/. Ele poderá identificar facilmente, se existem problemas na largura de banda interna ou quedas na conexão.
Alimentação Elétrica:
Verificar a alimentação elétrica dos principais ativos de TI. Se houver problemas aparentes ou histórico de incidentes, deve-se verificar a situação com uma empresa especializada.
Observações sobre Banco de dados:
Recomendamos fortemente que o banco de dados seja avaliado em conjunto com a infraestrutura de TI, pois o banco de dados está totalmente relacionado com o uso crítico das aplicações da Ema, e podem influenciar diretamente no desempenho.
Parcerias:
A Ema possui parceria com empresas especializadas em infraestrutura de TI e banco de dados Oracle. São empresas certificadas pela Ema para exercerem qualquer tipo de serviço relacionado ao seu ramo de atuação, com ênfase nas aplicações da Ema.
Registrando / Atualizando MIDAS.DLL
Para registar a DLL midas.dll efetue o seguinte procedimento:
- Identifique o local onde está a DLL, por padrão ela estará em: C:\Ema software\Contas ERP\midas.dll
- Abra o CMD como administrador;
- Na tela de comando dê
- cd\ "entrer"
- cd ema software "enter"
- cd Contas ERP "enter"
- regsvr32 midas.dll "enter"
Com isto a DLL será registrada.
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