<< Click to Display Table of Contents >> Configurando a memória compartilhada |
![]() ![]() ![]() |
Shared Memory no Linux
A Shared Memory será igual a shared buffer do PostgreSQL + (de 10 a 20)%
Exemplo com shared_buffers = 256MB:
Shared Memory = 256MB + 15%
256MB + 15% = 295 MB
295MB = 295 * 1024 * 1024 = 309329920
Arquivo de configuração de memória compartilhada do Linux
/etc/sysctl.conf
kernel.shmmax = 309329920
kernel.shmall = 309329920
kernel.shmmni = 4096
Comando para alterar as variáveis do kernel sem re-iniciar o Linux
sysctl -w kernel.shmmax=309329920
sysctl -w kernel.shmall=309329920
sysctl -w kernel.shmmni=4096
Explicação
shmmax
O shmmax parâmetro é usado para definir o tamanho máximo em bytes para um segmento de memória compartilhada, e deve ser grande o suficiente para definir o tamanho SGA que se irá definir.
Para sistemas de 32 bits, o SGA máximo padrão é de 1.7GB. Ou seja, para este caso basta definirmos um shmmax de 2Gb que irá atender satisfatoriamente a necessidade. Não há necessidade de maiores valores.
shmall
Este parâmetro define a quantidade total de páginas de memória compartilhada.
shmmni
Este kernel parâmetro é usado para definir o número máximo de cada segmento de memória compartilhada (PAGE_SIZE). O valor padrão para este parâmetro é 4096.
Para saber como ficou
ipcs -lm
- Limites da memória compartilhada -
max number of segments = 4096
max seg size (kbytes) = 302080
max total shared memory (kbytes) = 1237319680
min seg size (bytes) = 1
Para saber mais
•http://www.dicas-l.com.br/print/20080825.html
•http://www.slackware-brasil.com.br/web_site/artigos/artigo_completo.php?aid=63
•http://frankmash.blogspot.com/2005/11/sysctl-kernel-optimization.html