Janeiro 25, 2022

The Geek Diary

o post explica como os limites do semáforo do kernel podem ser alterados em um servidor CentOS/RHEL.

Parâmetros de Kernel para definir semáforo limites

parâmetros Do kernel para definir o semáforo limites são:

kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNISEMMSL - max semaphores per arraySEMMNS - max semaphores system wideSEMOPM - max ops per semop callSEMMNI - max number of arrays

Mudança do Semáforo Limites

Se um limite que precisa ser mudado não deve ser levado em conta que (máximo número de matrizes)*(máximo de semáforos por matriz) >= (max semáforos sistema-amplo). Não há necessidade de ter mais semáforos em todo o sistema se limitado pela quantidade de um possível Número de matrizes com semáforos máximos por ele.

por exemplo:

# sysctl -a| grep kernel.semkernel.sem = 250 32000 32 128

para este exemplo, precisamos aumentar os semáforos máximos por limite de matriz de 128 para 192. Os semáforos máximos em todo o sistema também podem ser aumentados para 48000 ( 250*192 = 48000 >= 32000) ou mantido como 32000. Neste cenário, é mantido em 32000.

para definir o parâmetro do kernel dinamicamente, ou seja, sem a necessidade de reinicialização do servidor.

# sysctl -w kernel.sem="250 32000 32 192"kernel.sem = 250 32000 32 192

se tudo estiver bem com o sistema como esperado, modifique o parâmetro do kernel adicionando-o ao /etc/sysctl.conf arquivo para garantir que o valor persiste após a reinicialização do servidor.

# cat /etc/sysctl.conf | grep kernel.semkernel.sem = 250 32000 32 192

Se você escolher para defini-lo diretamente no arquivo, sem usar a variável do sysctl -w, você irá precisar recarregar o arquivo:

# sysctl -p

Você pode verificar os limites, atualmente definidos por:

# ipcs -ls------ Semaphore Limits --------max number of arrays = 192max semaphores per array = 250max semaphores system wide = 32000max ops per semop call = 32semaphore max value = 32767

Deixe uma resposta

O seu endereço de email não será publicado.