shmmax
e shmall
não são alocações, eles são botões de controle no kernel que permitem controlar o tamanho máximo do segmento de memória compartilhada e o número de páginas de memória compartilhada.
Citando a documentação do sysctl :
shmall:
This parameter sets the total amount of shared memory pages that
can be used system wide. Hence, SHMALL should always be at least
ceil(shmmax/PAGE_SIZE).
If you are not sure what the default PAGE_SIZE is on your Linux
system, you can run the following command:
# getconf PAGE_SIZE
==============================================================
shmmax:
This value can be used to query and set the run time limit
on the maximum shared memory segment size that can be created.
Shared memory segments up to 1Gb are now supported in the
kernel. This value defaults to SHMMAX
Eu recomendaria pegar as sugestões que você recebeu sobre as configurações dessas variáveis sysctl, pois elas são essenciais para poder ajustar ainda mais o PostgreSQL, e as recomendações costumam ser mais do que adequadas para as tarefas necessárias. =)
Quando esses sysctls estiverem definidos, definir shared_buffers
a 25% de RAM e effective_cache_size
a 75% em postgresql.conf
farão com que você comece a usar a RAM em seu servidor com eficiência.
Eu também recomendo seguir a entrada do PostgreSQL Wiki em Ajustando seu servidor PostgreSQL , ou obtendo o livro de alto desempenho do PostgreSQL 9.0 de Greg Smith para mais informações sobre ajustes e cuidados adequados com o seu servidor. =)