Configurando a memória compartilhada

<< Click to Display Table of Contents >>

Navigation:  Linux >

Configurando a memória compartilhada

Previous pageReturn to chapter overviewNext page

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

http://www.rwitkop.com/VistA/ConfigureSysctl4Cache.html