Qual o objetivo?
Orientar o usuário na realização do procedimento de Performance Tunning no Pervasive do servidor, o Performance Tunning tem como objetivo melhorar o desempenho do Pervasive no Servidor, sendo utilizado em casos de lentidão ou queda de banco de dados.
Como base para as informações deste manual foi utilizado a referência oficial da Actian no link:
https://docs.actian.com/psql/psqlv13/index.html#page/advops%2Fperformance.htm%23ww99582
É importante que seja feita análise do ambiente para melhor entendimento das configurações ideias. Em caso de dúvida, contate o suporte.
Informações Adicionais: As configurações descritas neste manual se aplicam apenas ao servidor, para configurações da estação verifique manual específico.
I29 - Manual de configurações do Pervasive - Estação
Como executar o Performance Tunning:
1- Acesse o Menu Iniciar do Windows, digite PCC e acesse-o.
2- Clique em Configure Local Engine.
Aba Acess:
Por padrão essa guia é apresentada como na imagem abaixo. Não há necessidade de modificações, qualquer mudança aqui pode ocasionar a paralisação do sistema.
Aba Communication Protocols:
Esta guia determina o protocolo de comunicação do Pervasive, porta e eventualmente a placa de rede pela qual essa comunicação ocorrerá.
- Opção TPC/IP Multihomed: deve ser mantida marcada, exceto nas situações onde o servidor possua duas placas de rede. Nestes casos é possível que surjam problemas de contagem incorreta de assentos no Pervasive, então é necessário desmarcar esta opção e em seguida informar o IP da placa correta no campo Listam IP Address.
- TPC/IP Port: esta opção indica a porta no qual o Pervasive trabalha. Evite alterar esta configuração.
- Listem IP Address: apenas utilize quando desmarcar a opção TPC/IP Multihomed.
- Supported Protocols: mantenha marcada apenas a opção TCP/IP. As demais não irão auxiliar na comunicação e ainda podem a tornar mais lenta devido a tentativa de estabelecer comunicação por outros protocolos.
Aba Compatibility:
Nesta guia é possível determinar a versão dos arquivos que o Engine do Pervasive criará. Evite alterações pois apenas fará sentido quando for necessário enviar um arquivo criado no servidor para um local onde a versão do Pervasive seja 9 ou inferior.
Aba Data Integrity:
Nesta guia são definidos critérios para o Pervasive manter a integridade.
- Transaction Durability: o mecanismo de banco acaba tendo um maior controle sobre a transação e geração de log sobre ela, porém implica em menor performance.
Obs.: Para clientes com problemas de performance, esta configuração pode ser desabilitada mantendo o Transaction Logging ativo.
- Transaction Logging: o mecanismo de banco acaba gerando menos log acerca das transações, o que implica em uma menor capacidade de recuperação em situações de desastres na gravação, porém permite uma maior performance. O controle de transações continua existindo.
Obs.: Para clientes onde a performance não é um problema, é possível desativar esta opção ativando o Transaction Durability.
As demais configurações não devem ser alteradas pois podem implicar em gargalos para o sistema e são ajustes que apenas a Actian (anteriormente Pervasive) realiza.
Aba Debugging:
Nesta guia encontramos informações sobre o debugging do Pervasive. Não realize alterações aqui, pois são de uso exclusivo da Actian.
Aba Directories:
Nesta guia é onde são indicados os diretórios de arquivos que o Pervasive utiliza. Não há necessidade de modificação.
Aba Memory Usage:
Nessa guia é informado ao Pervasive o comportamento relacionado a memória.
- System cache: no servidor, esta configuração deve ser desativada pois realizar o cache diretamente nele pode acabar implicando em swap da memória para o disco. Desta forma, a performance que inicialmente pode ter aumentado acaba sendo prejudicada.
- Allocates Resources at Startup: configuração que faz sentido em situações onde o Pervasive precisa “disputar” o uso de memória com outras aplicações. Dessa forma, o Pervasive reserva uma quantidade mínima de memória assim que possível. É importante entender que este não é um limitante da memória a ser utilizada.
- Back to Minimal Stte If Inactive: configuração para ser utilizada quando não há alocação de recursos por meio da configuração Allocates Resources at Startup. Nestas situações, o Pervasive liberará todos os recursos de memória quando não houver mais clientes ativos no serviço.
É importante ter em mente que clientes que possuem integrador dificilmente entrarão em estado inativo, pois o serviço esta sempre checando o banco de integração.
Demais configurações não devem ser modificadas.
Aba Performance Tunning:
Esta guia é utilizada para otimização de comunicação, processamento e uso de memória
- Index Balancing: normalmente esta opção deve ser desativada. Apesar do balanceamento ser importante, o processo pode ser oneroso.
- Limit Segment Size to 2 GB: esta opção SEMPRE deve ser desativada. Por padrão, o Pervasive é instalado com essa configuração ativa.
A configuração fará com que o Pervasive limite o tamanho do arquivo à 2 GB e, com isso, os arquivos com tamanho de 5,5 GB serão fragmentados em 3 arquivos. Isso torna as consultas bem mais lentas.
- Cache Allocation size in MB: indica quanta memória poderá ser usada para alocar arquivos usados pelo banco. É preciso ter o cuidado de não tentar alocar mais memória do que o necessário nem mesmo mais memória do que o possível (casos de banco Workgroup 32bits). A própria Actian sugere que este seja algo em torno de 20-70% do tamanho total da base, pensando ainda que valores menores favorecem a leitura e valores maiores favorecem a escrita.
Versões:
Pervasive 11 Workgroup:
É necessário configurar com o valor de memória compatível com a quantidade de memória RAM do servidor, ou seja, a quantidade de alocação precisa ser menor do que o que realmente existe de disponível no servidor. Para início do ajuste, limite a 800 MB (o valor de 800 MB é o máximo para as versões Workgroup do Pervasive) para um servidor com até 4 GB.
Pervasive 11 Server:
Já para a versão Server com o Windows 64 bits, pode-se realizar a configuração conforme a disponibilidade de memória RAM do servidor.
Exemplo: Se o servidor possui 16384 MB de RAM no servidor e este servidor é dedicado ao Gerenciador de Aplicativos Prosoft - GAP, definir 50% (8192 MB) de RAM é adequado.
- Number of Input/Output Threads: neste campo é necessário preencher com o número de núcleos do computador ou de cores da máquina virtual.
- Communication Threads: definição de quantas Threads serão utilizadas para comunicação com o banco. Deve ser ao menos o valor encontrado como Peak em Communication Threads dentro do Monitor em Communications.
- Max Microkernel Memory Usage: corresponde ao percentual máximo que poderá ser utilizado de memória total pelo mecanismo de banco. Em geral, utilizamos “40”, porém, é necessária uma análise no ambiente para especificar a melhor configuração possível.
- File Growth Factor: indica o fator de crescimento do arquivo. Em geral, podemos utilizar “5”, pois não criará grandes espaços a serem utilizados nem mesmo forçará o banco a ficar criando novas páginas o tempo todo.
Alteração no registro do Windows:
Devido ao modo de trabalho do Pervasive, é possível identificar lentidão em situações onde várias leituras são feitas em um mesmo arquivo e não necessariamente de forma sequencial. Isso implica em Abrir-Ler-Fechar arquivo. Para estas situações, há duas chaves de registro bastante úteis:
- UseDelayedSyncClose e UseDelayedSynCloseForRI: por padrão, a instalação do Pervasive marca estas chaves com “NO”, porém, para o problema supra citado, é interessante alterarmos tal chave para “YES”. Isso fará com que o arquivo seja aberto, lido e mantido em memória por algum tempo. Isso evita o fechamento desnecessário do arquivo, logo não será necessário abri-lo novamente para a próxima leitura.
A chave pode ser localizada em Computador\HEKY_LOCAL_MACHINE\SOFTWARE\Pervasive Software\MKC.
É importante estar atento ao caminho da chave, pois o Pervasive também cria uma chave própria na WOW6432Node. Entretanto, ela não deve ser modificada.
Reinicialização do serviço do Pervasive:
Para que as alterações sejam gravadas, é necessário reiniciar o serviço do Pervasive.
1 - Acesse o menu Iniciar > Executar e digite services.msc.
2 - Selecione o serviço Pervasive PSQL Workgroup Engine e clique em Reiniciar.
3 - Caso durante a reinicialização do serviço do Pervasive ocorra o erro 1053 ou 8591, será necessário parar os serviços Prosoft antes da reinicialização/inicialização do serviço.
Para mais informações, acesse: I435 - Erro 1053 ou 8591 ao iniciar o serviço do Pervasive