![SHMMAX + como o parâmetro do kernel foi afetado que não foi definido corretamente por engano](https://rvso.com/image/154472/SHMMAX%20%2B%20como%20o%20par%C3%A2metro%20do%20kernel%20foi%20afetado%20que%20n%C3%A3o%20foi%20definido%20corretamente%20por%20engano.png)
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.