Introdução
O Protheus 12, sistema de gestão empresarial desenvolvido pela TOTVS, é amplamente utilizado por empresas para gerenciar suas operações e processos. No entanto, é comum que os usuários enfrentem problemas de lentidão generalizada no sistema, o que pode prejudicar a produtividade e a eficiência das atividades diárias. Neste artigo, vamos explorar algumas estratégias para identificar a causa da lentidão e melhorar a performance do Protheus 12.
1. Avaliando o Ambiente
Antes de mergulharmos nas estratégias para resolver a lentidão, é fundamental avaliar o ambiente do Protheus. Verifique se o hardware do servidor atende aos requisitos mínimos recomendados, especialmente em relação ao processamento, memória RAM e armazenamento. Se o Protheus estiver em um ambiente virtualizado ou em provedores de nuvem, certifique-se de que as configurações e recursos estejam adequadamente dimensionados.
Confira abaixo os requisitos mínimos recomendados:
2. Investigando Ofensores
2.1. Atualização do Sistema
Verifique se o Protheus está atualizado com a última versão de LIB, Appserver, Smartclient, DBAccess e License Server disponível no Portal do Cliente. As atualizações frequentes incluem melhorias de performance e otimizações para o ambiente do Protheus 12, como a carga do RPO, abertura de thread e busca de usuário.
2.2. Configurações
Algumas configurações específicas podem causar lentidão no Protheus. Verifique se existem filtros que não possuem índices, o que pode gerar lentidão ao tentar realizar consultas por determinado campo. Nesse caso, criar um índice para o campo desejado pode resolver o problema. Além disso, analise se há customizações realizadas por meio de pontos de entrada no sistema. Caso ocorra lentidão, considere desabilitar temporariamente as customizações para verificar se elas são a causa do problema.
2.3. Utilize Smartclient local
É recomendado executar o Smartclient localmente para minimizar o tráfego de rede, o que pode contribuir para melhorar a velocidade de acesso ao sistema.
2.4. Latência de rede
Verifique a latência de rede, pois altos valores podem impactar significativamente a performance do Protheus. Configure o arquivo Appserver.ini com as seguintes especificações, por exemplo:
[NetTest
Enable=1
Warning=1
Latencywarning=30
Pinginterval=1000
Maxpingcount=1000
Latencyhit=60
Latencypercent=10
Shortcut=1
ChartRange=100]
Através da ativação deste recurso, é possível avaliar tanto a latência da rede quanto o consumo da CPU e memória RAM da máquina na qual esta sendo executado o SmarClient.
Respostas acima de 100ms já podem ser percebidas pelos usuários como lentidão.
Ainda é possível que o usuário salve o log do monitoramento, conforme print abaixo, para análise de um técnico especializado.
2.5. Monitoramento de Máquina
2.6. Monitoramento de Latência da Rede
2.7. Política de AppServer
Distribua as responsabilidades entre os Appservers para manter a coesão e melhorar a performance. Considere a configuração com Appserver Master, Appserver Slaves, Appserver Jobs – Schedule e Appserver Web Service – Portal.
2.8. Consumo de memória
Monitore o consumo de memória dos serviços do Protheus. Caso esteja elevado, analise o consumo por programa e identifique programas com alto consumo de memória. É possível criar novos Slaves para equilibrar a carga e reduzir o consumo de memória.
2.9. Numeração automática
Utilize o controle de numeração pelo License Server para melhorar a performance do ambiente. Verifique se o parâmetro EnableNumber=1 está configurado no appserver.ini do License Server.
2.10. ShowStatus e TraceInder
Desabilite o ShowStatus no appserver.ini do License Server (ShowStatus=0) para evitar a gravação de informações desnecessárias no console.log, o que pode afetar o desempenho do sistema. O TraceIndex no dbaccess.ini deve ser habilitado somente quando necessário para monitoramento.
2.11. Monitor de Índices
Verifique se o Monitor de Índices do DBAccess está desligado, pois esse recurso pode impactar diretamente na performance do Protheus 12, especialmente em bases legadas.
2.12. Arquivos da System
Mantenha o diretório SYSTEM com menos de 10.000 arquivos para evitar perda de desempenho. Delete arquivos desnecessários, como .tmp, sc.log, sc*.dtc, sc*.cdx e arquivos sc* sem extensão.
2.13. Auditoria de tabelas
A auditoria de todas as operações de inclusão em tabelas de movimento pode impactar a performance do sistema. Analise a abrangência de entidades que precisam ser auditadas para garantir um desempenho melhor.
2.14. Opções de energia
Certifique-se de que o servidor esteja configurado com a opção “Alto Desempenho” (High Performance) para evitar atrasos causados por configurações de energia.
2.15. Indexação automática do FileSystem
Desabilite a indexação automática de disco na partição onde a aplicação do Protheus está instalada, pois esse recurso pode degradar a performance do sistema.
2.16. Escaneamento do Antivírus
Verifique se o antivírus não está fazendo escaneamento em tempo real na pasta PROTHEUS_DATA da aplicação do ambiente de produção ou nos arquivos listados, pois isso pode impactar negativamente a leitura dos arquivos e resultar em lentidão.
2.17. Hardware do servidor de aplicação
Garanta que o hardware do servidor de aplicação seja adequado para suportar as conexões e as rotinas mais intensivas em recursos nos horários de pico de utilização.
2.18. Configuração do MARS no DBAccess com MSSQL
A configuração do MARS no arquivo appserver.ini é exclusiva para bancos de dados MS SQL e pode melhorar o desempenho do DBAccess.
2.19. Correta configuração do Drive ODBC
Configure a conexão com o banco de dados via ODBC corretamente para evitar conflitos que possam impactar a performance.
3. Manutenção do Banco de Dados
3.1. Fragmentação de tabelas, SQL Server
Verifique se há tabelas e índices do banco de dados desfragmentados, pois isso pode prejudicar a performance. Realize a desfragmentação das tabelas e tablespaces para melhorar as operações de DML e DQL no banco de dados e aumentar a performance do Protheus.
3.2. Estatísticas do SQL Server
Mantenha as estatísticas das tabelas do banco de dados atualizadas, pois estatísticas desatualizadas podem causar impacto na performance da aplicação. Coletar estatísticas do schema e do dicionário de dados do banco de dados é essencial para otimizar a performance.
3.3. Coleta de Estatística do Oracle
No caso de um ambiente com banco de dados Oracle, a coleta de estatísticas é fundamental para que o banco de dados tome as melhores decisões de acesso aos dados. Utilize o pacote dbms_stats para calcular as estatísticas do banco de dados Oracle.
Lembramos que a manutenção da base de dados, incluindo reindexação, reconstrução de índices e atualização de estatísticas, deve ser realizada periodicamente para garantir um desempenho adequado do Protheus. Além disso, a análise do hardware disponível e a configuração correta do ambiente também são fatores cruciais para melhorar a performance do sistema.
Conclusão:
A implementação das estratégias mencionadas acima ajudará a identificar a causa da lentidão generalizada no Protheus 12 e a melhorar a performance, garantindo que os usuários possam trabalhar de forma mais eficiente e produtiva.
Referência:
Central de Atendimento TOTVS – Framework Linha Protheus – Lentidão no Protheus 12. Disponível aqui. Acessado em: 26/07/2023.
