SHMMAX + como o parâmetro do kernel foi afetado que não foi definido corretamente por engano

SHMMAX + como o parâmetro do kernel foi afetado que não foi definido corretamente por engano

algumas palavras sobre memória compartilhada

A memória compartilhada permite que os processos acessem estruturas e dados comuns, colocando-os em segmentos de memória compartilhada. É a forma mais rápida de comunicação entre processos disponível, uma vez que não ocorre envolvimento do kernel quando os dados são passados ​​entre os processos. Na verdade, os dados não precisam ser copiados entre os processos.

notamos que o valor nas máquinas redhat é enorme como o seguinte

 cat /proc/sys/kernel/shmmax
 17446744003692774391

 sysctl -a | grep kernel.shmmax
 kernel.shmmax = 17446744003692774391

quando calculei para Giga é - 16248546544.17632

é lógico? , sentimos falta de alguma coisa aqui

as máquinas têm 64G e 16 CPU e são usadas no cluster hadoop

Responder1

Ovalor padrãopois shmmaxé

#define SHMMAX (ULONG_MAX - (1UL << 24))

Este é um limite superior, escolhido para ser o maior possível, limitando ao mesmo tempo o risco de estouro:

SHMMNI, SHMMAX e SHMALL são limites superiores padrão que podem ser modificados pelo sysctl. Os valores SHMMAX e SHMALL foram escolhidos para serem os maiores possíveis, sem facilitar cenários onde o espaço do usuário causa estouros ao ajustar os limites por meio de operações do tipo "recuperar limite atual; adicionar X; atualizar limite". Portanto, não é aconselhável aumentar SHMMAX e SHMALL. Esses limites são adequados para sistemas de 32 e 64 bits.

O valor está bom como está; está configurado corretamente, não há erro.

informação relacionada