Erro de Semaphores Clássico 2.1

13/04/2020

0

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

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar