Pular para o conteúdo principal

Administração do BrERP - Otimizar Performance

O BrERP é uma plataforma de gestão completa e flexível para atender diferentes tipos e tamanhos de empresas, por isso suas configurações iniciais não estão totalmente otimizadas em termos de desempenho pois tais configurações dependem de fatores inerentes à sua utilização e podem variar conforme as necessidades específicas de cada cliente.

De uma maneira geral, a devCoffee está em uma constante busca por melhorias de performance para a plataforma, investigando, coletando estatísticas e realizando estudos afim de maximizar o seu potencial e obter melhorias à seus utilizadores.

Neste documento, vamos listar os pontos mais comuns para obter um melhor desempenho do BrERP.

Dica: este documento é voltado para clientes que possuem servidores sob sua responsabilidade (onpremisse). Clientes da modalidade em nuvem não precisam se preocupar pois toda a administração e parametrização de performance está sob responsabilidade da devCoffee em um ambiente controlado e garantido.

Banco de Dados (PostgreSQL)

O BrERP é uma plataforma que utiliza intensamente o banco de dados, não apenas como um depósito de informações, mas também para toda a sua composição de dicionário de dados (janelas, menus, definições de segurança, etc), sendo assim a performance do banco de dados irá afetar positiva ou negativamente a performance da aplicação.

Nesta seção vamos descrever os pontos mais comuns relacionados à banco de dados quando tratamos de performance no BrERP.

Índices no banco de dados

Os índices padrão de uma base de dados do BrERP não são suficientes para manter a performance inicial do sistema após um período de uso. Conforme alguns itens comuns documentados na página Índices PostgreSQL x BrERP certifique-se que a sua instância de banco de dados está sendo corretamente administrada para extrair uma melhor performance do BrERP.

Vacuum e Reindex

Certifique-se que as rotinas vacuum e reindex estejam sendo executadas de acordo com as necessidades de seu BD. Caso esteja utilizando o autovacuum é importante parametriza-lo de forma a não prejudicar a performance durante os horários de pico do uso em sua instância, atentando-se para tabelas com alto índice de leitura/escrita como o caso da AD_Sequence, AD_Changelog e outras que podem facilmente ser analisadas através de monitores de atividade (solicitar mais informações caso necessário). Veja FAQ do PostgreSQL no BrERP

Configuração de Instância StandBy

Para clientes que possuem altos volumes de dados e utilizam ferramentas conectadas diretamente á base de dados, recomenda-se a utilização de uma instância replicada (somente leitura) do banco de dados para a extração dos dados.

Parâmetros avançados, Health Check e Backup

A performance de um banco de dados requer atenção contínua, e dentre as principais atividades recomendamos que o administrador tenha os seguintes cuidados:

  • revisão de configurações do BD x necessidades levantadas com estatísticas de uso
  • revisão de configurações de segurança x novas políticas implementadas
  • revisão e monitoramento do processo de backup (incremental, dumps, etc)
  • monitoramento do serviço do BD (possíveis gargalos, consultas lentas, índices, e outros itens que podem surgir)

Dica: duas boas opções que podem auxiliar na parametrização do PostgreSQL são o PgConfig e o PgTune, mas é importante ter a consciência que não existe uma fórmula mágica e que a parametrização de um Banco de Dados não é algo que possa ser feito de maneira automática sem nenhum conhecimento. É importante entender o cenário, conhecer os parâmetros e validar as sugestões feitas antes de aplicar em produção.

BrERP

JVM

Informações serão adicionadas em breve

Jetty

Informações serão adicionadas em breve

Parâmetros e opções do BrERP

Também é possível obter melhores resultados na performance do BrERP através de parâmetros configurados dentro da própria aplicação dentro do Configurador do Sistema, do dicionário da aplicação ou de preferências de usuários. Veja à seguir os principais itens identificados:

Desativar o gadget de Itens Recentes

É comum percebermos que os usuários utilizam muito pouco a funcionalidade de Itens Recentes disponível no sistema, por isso em instâncias com alto volume de dados e grande número de usuários recomendamos que ela seja desabilitada por padrão, trazendo um ganho baixo na performance.

Reduzir o número de campos exibidos em grade

Por padrão o BrERP exibe praticamente todos os campos de todas as janelas quando o usuário está utilizando o sistema em modo grade.

Com o tempo e a utilização do sistema, quanto maior o volume de informações e maior o número de campos exibidos em grade, maior o custo de execução e pior a performance. Através do dicionário é importante fazer um trabalho de identificação das janelas mais utilizadas e otimizar a grade para reduzir os campos exibidos, podendo trazer um alto ganho de performance.

Reduzir o número de registros exibidos em grade

O número padrão de registros exibidos por página em modo grade e de 25. Se este número for reduzido para 20 em bases com alto volume um ganho alto de performance foi notado através dos monitoramentos que realizamos.

Reduzir o número de colunas com Registro de Alterações

Gravar o histórico de Registro de Alterações de todas as colunas em todas as tabelas tem um custo, e é refletido diretamente na performance da aplicação. Fazer uma análise aprofundada e redefinir quais colunas realmente precisam deste histórico pode causar um alto ganho de performance na aplicação. É importante notar que mesmo que todas as colunas de uma tabela tenham seu registro de alterações desabilitado, ainda assim as datas de criação e atualização do registro, bem como seu usuário responsável ainda serão gravados.

Excluir Registros de Alterações antigos

Com o tempo um grande número de registros de alterações é gerado no BrERP para Auditoria e acabam causando um volume desnecessário nas tabelas relacionadas. Após encerramentos de períodos estas informações podem não ser mais necessárias e então podem ser excluídas (ou gravadas em uma tabela de histórico) afim de melhorar a performance da aplicação.

Ocultar o painel de ajuda lateral (ajuda de contexto)

A cada campo acessado o BrERP atualiza o painel lateral de ajuda com informações relacionadas. Em instâncias com alto número de usuários isso gera uma carga no servidor desnecessária caso o usuário não utilize estas informações.

Desabilitar este painel pode trazer ganhos médios de performance para a aplicação;

Observação: existem casos em que um adica rápida é adicionada à este painel e é importante ficar atento para não suprimir informações importantes para o usuário no momento de ocultar este painel.

Usar referências de Procurar ao invés de Tabela e Tabela Direta

Para clientes que desenvolvem funcionalidades de dicionário com time interno, utilizar sempre que possível a referência Procurar ao invés de Tabela e Tabela Direta afeta de maneira alta a performance de carregamento de uma janela no BrERP.

Criação de Janelas para entrada de dados

Uma ótima alternativa para bases de dados grandes e com alto número de usuários é a criação de janelas exclusivas para inserção de registros. Estas janelas se comportam como as janelas originais do sistema porém possuem um filtro pré-definido para que somente documentos em um estado de digitação (Esboçado) sejam exibidos, diminuindo a carga do servidor no momento da criação destes documentos pelos usuários.

Alterações e acompanhamentos dos documentos após inseridos continuam sendo feitos nas janelas tradicionais.

Consultas rápidas

É comum constatarmos no uso diário pessoas que utilizam o sistema intensamente para consultas e conferência de informações que em muitas vezes não estão disponíveis nas Consultas Rápidas do sistema. É importante fazer um mapeamento e ajustar estas consultas para atender estes usuários evitando uma carga desnecessária causada pela utilização de uma pesquisa em janela padrão do sistema.

Revisão de Processs de Personalização

Após a implantação geralmente os processos dos usuários sofrem uma personalização pra atender 100% de seus requisitos. Após esta fase, e com a evolução da plataforma é comum que uma revisão seja necessária para garantir que itens personalizados não estejam afetando negativamente a performance da plataforma em decorrência de alterações que foram feitas pós implantação.

Principais melhorias de performance recentes

Durante os trabalhos de pesquisa e investigação diversos itens foram e estão sendo melhorados no BrERP visando o aumento da performance. Acompanhe no release notes para ter maiores informações.

Outros

Servidores Dedicados

Ambientes baseados em Public ou Private Cloud geralmente oferecem performance e segurança superior em relação à ambientes criados em servidores dedicados. Para clientes que estão utilizando ambientes dedicados recomendamos a reavaliação e um possível projeto de migração.

Apache / HAProxy

Alguns problemas de performance podem ser causados por configurações incorretas do Apache / HAProxy e que acabam retendo conexões e não fazendo o proxy / balance corretamente, portanto é importante verificar as configurações destes softwares afim de extrair uma melhor performance do BrERP.

Profiling

Para facilitar a identificação de possíveis não conformidades na aplicação (código) é necessário que ao identificar situações com este tipo de suspeita seja feito um profiling da aplicação e gerada uma conclusão assertiva após análise das informações geradas. As ferramentas que a devCoffee utiliza e sugere para esta finalidade são a VisualVM e/ou YourKit Java Profiler.

Nota: clientes cloud, quando detectado que um problema de performance é causado por personalizações criadas podem sofrer cobranças de horas para compatibilização/redesenvolvimento.