Erro de Semaphores Clássico 2.1

Banco de Dados

Firebird

13/04/2020

Possuo o servidor de bando de dados dedicado rodando dentro do Hyper-V. Essa VM esta com Ubuntu 18.04, com 32 GB de RAM, 8 núcleos de processadores virtuais e HD de 1 TB.

O Firebird que roda nesse servidor é o Classic Server 2.1. Possuo apenas 4 bases de dados nessa máquina. O numero de usuários chega no máximo a 100 em seu pico.

Ocorreu que de alguns dia para cá os sistemas começaram a ficar lentos e a cair as conexões. No log do firebird constava que não havia mais Semaphores disponíveis.

Pesquisando no google descobri que deveria aumentar o número de Semaphores para o firebird de acordo com o disponível no kernel do Linux.

Realizei diversos testes e pesquisa, em uma determinada página que não me recordo agora um usuário disse ter setado 1024 Semaphores para o firebird e que também aumentou o número máximo no Kernel.

Tentei utilizar 1024 nas minhas configurações do firebird e o mesmo apresentou erro nos logs informando que o número não estava disponível em meu sistema e que era para setar o valor 64.

Descobri através de documentações do banco de dados oracle que o oracle utiliza o a seguinte configuração para o seu banco de dados no kernel do Rad Hat Linux (é uma configuração de exemplo)

sysctl -w kernel.sem = "5010 641280 5010 128"
Fiz essa configuração no meu servidor e setei o Semaphores do firebird para 128. Percebi que obtive uma performance já bem melhor..

A minha dúvida é a seguinte: Realmente é possível setar 1024 nas configuração de Semaphores?

Se a resposta for sim, como eu faço os cálculos para setar os parâmetros no Kernel?
Willian Amor

Willian Amor

Curtidas 0
POSTAR