sexta-feira, 15 de julho de 2011

PostgreSQL - Tunando seu shmmax e shmall

   Simples programa em shell para tunar estes parâmetros de Kernel:


#!/bin/bash

page_size=`getconf PAGE_SIZE`
phys_pages=`getconf _PHYS_PAGES`
shmall=`expr $phys_pages / 2`
shmmax=`expr $shmall \* $page_size`
sysctl -w kernel.shmmax = $shmmax
sysctl -w kernel.shmall = $shmall
echo kernel.shmmax = $shmmax
echo kernel.shmall = $shmall

   Após executar o código em um .sh da vida você terá o retorno dos parâmetros de kernel aplicados e indicados pela documentação do PostgreSQL.

4 comentários:

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
  2. Olá Gabriel!

    Os parametros de kernel shmmax e shmall são parametros que também deve ser configurados para o banco de dados Oracle. No Oracle a checagem de parametros é feita na instalação, se não tiver adequado, ele nem é instalado.

    Como proceder essa configuração, caso já tenha o Oracle instalado, provavelmente os valores recomendados entre Oracle e Postgresql são diferentes.

    É possível fazer essa configuração de kernel por banco ? Ou a unica solução seria, ter um SO pra cada banco ?

    Sakamoto

    MyTracelog - Registro de um DBA
    http://mytracelog.blogspot.com

    ResponderExcluir
  3. Olá Sakamoto!

    Bom, os parâmetros 'shmmax' e 'shmall' para o Oracle são baseados no valor de sua SGA, idem para o PostgreSQL(shared_buffers/effective_size e por ai vai). Caso tenha os dois bancos em um só servidor sugiro dimensionar os valores do kernel('shmmax' e 'shmall') de acordo com o banco de dados que possuirá a maior porção de memória, pois o outro por consequência será atendido.

    ResponderExcluir
  4. não entendo nada disso, mas te acho um gato!!

    ResponderExcluir