JR@Protheus
O elefante mais rápido que um leopardo Debian day 2007: GUD-RJ
Fernando Ike de Oliveira
O banco está lento!
Escolhas erradas
●
Todas regras de negócio na aplicação
●
Integridade referencial na aplicação
●
Arranjo de discos RAID-5
Ambientes virtualizados (Vmware, XEN, etc..) ●
O banco está lento!
Problemas comuns
Problemas relacionados a modelagem do banco ou como as consultas são montadas geralmente são 80% dos caso
●
●
Configuração padrão do Sistema Operacional
●
Configuração padrão do PostgreSQL
O melhor do hardware
Equipando o PostgreSQL
Processadores de 64 bits: Performance até 3 vezes do que os 32 bits (AMD64 e EMT64 - Intel)
●
Storage com Fiber Channel e iSCSI: Grupos de RAID dedicados ●
●
RAID: 0+1 por Hardware
●
Memórias ECC
●
Servidores dedicados para o PostgreSQL
O melhor do SO
Equipando o PostgreSQL
Sistemas Operacionais *nix: Linux (Debian, Gentoo),
FreeBSD, Solaris, etc
●
Em Linux: use Sistemas de arquivos XFS, Ext(3|4),
Ext2
●
Instale a última versão do PostgreSQL (atualmente
8.2) e à partir do código-fonte
●
Não usar serviços concorrentes (Apache, MySQL...) em semáforos e shared memory
●
Parâmetros do SO
Modificando o *nix
●
echo “2” > /proc/sys/vm/overcommit_memory
●
echo “25%” > /proc/sys/kernel/shmmax
●
echo “25%” > /proc/sys/kernel/shmall
●
echo “deadline” > /sys/block/sda/queue/scheduler
●
echo “250 32000 100 128” > /proc/sys/kernel/sem
●
echo “65536” > /proc/sys/fs/file-max
●
ethtool -s eth0 speed 1000 duplex full autoneg off
Parâmetros do SO
Limits
Alterar os parâmetros em
/etc/security/limits.conf
postgres postgres soft hard nofile nofile 4096
63536
Como guardar os dados
O melhor I/O
Partições ou discos separadas para:
●
●
Logs transacionais (WAL)
●
Índices: Ext2
●
Archives
●
Tablespaces
●