SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Tunning PostgreSQL em modo
OGRO
Quem está aqui??
Gerdan Rezende dos Santos

Líder Técnico e Consultor em Banco de Dados e na Tecnisys
Tecnologias inovadoras

Graduado em Ciências da Computação pela Universidade Paulista

Pós-graduado em Sistemas de Informação e Aplicações WEB

Pós-graduado em Sistemas de Informação Orientação a Objetos

MCT em SQLServer e .NET

Ativo nas comunidades PostgreSQL nacional e internacional,
colaborador principalmente nos testes de novas funcionalidades.

Já trabalhou em grandes Data Centers, como: MEC/Fies, MJ/PRF,
MME/DNPM, MCTI, Cluster Ativo x Ativo Armazém Paraíba,
TRT/PJe,
TECNISYS
➢
Atuando como provedora de
soluções tecnológicas a mais
de 25 anos. Somos referência
nacional em tecnologia
Open Source.
➢
Temos parcerias de sucesso
firmadas com empresas de
renome mundial,
fornecendo suporte técnico,
consultoria, treinamentos
oficiais e certificações
SEGMENTOS DE ATUAÇÃO
O QUE VEREMOS?
SEGURANÇA
CUSTO
DESEMPENHO
NÃO É
ONDE COMEÇA O PROBLEMA
CRUD
E QUAL A RELAÇÃO ?
FONTE: STORAGE TECNOLOGY – PRICE, PERFORMANDO & CAPACITY SUN
LOG TRANSACIONAL - WAL
Após um COMMIT um registro de WAL é gerado;
Após um checkpoint os DATAFILES são atualizados;
Se houver problemas o PostgreSQL vai recorrer ao
WAL(restart, falhas, rollback);
Onde está o problema mesmo ?
50% estão em SQL mal escrito;
25% estão em modelagem de dados mal feita;
15% estão em ajustes errôneos do SGBD;
5% estão em ajustes ruins do S.O.; e
5% estão em hardware mal dimensionado
Onde??? Hardware
✔ Servidor dedicado;
✔ Disco dedicados;
✔ Você vai definir o ambiente? Ótimo… Discos,
memória e processador;
✔ SSD SLC > SSD MLC > Fiber Channel > SAS >
jogue os SATA FORA;
✔ RAID 10> RAID 1 > RAID 6 > RAID 5
✔ Processadores? Quantos mais cache e memória
melhor...
Onde??? S.O.
✔ O melhor é aquele que você tem domínio
✔ É obrigatório utilizar no mínimo arquitetura 64bits
✔ RAID por software NÃO EkxisISTE - Pe. Kevedo
✔ Se possível descarte abstração de
particionamento por software “LVM”
✔ Remova qualquer serviço que não for necessário:
Bluetooth, Apache, Int. Gráfica, etc…
✔ Aprenda muito, mas muito mesmo Linux – Ref.
item 01
Onde??? Discos
✔ / Pergunte ao SysAdmin senão ext4 nele
✔ /boot Pergunte ao SysAdmin senão ext4 nele
✔ PGDATA (RAID 10 OU 1 + XFS OU EXT4 + noatime)
✔ pg_xlog (ext3 + noatime + writeback)
✔ Tablespaces com dados históricos (RAID 5 com
XFS ou EXT4 + noatime)
✔ BACKUP E ARCHIVES (Lembra dos SATA, pegue
eles de volta do lixo)
Ajustes no S.O.
✔ Aprender o Linux
✔ Sysctl.conf
✔ Semáforos;
✔ kernel.shmmax (½ da RAM disponível);
✔ file-max;
✔ overcommit;
✔ Limits.conf
✔ nofile;
✔ nproc;
✔ fstab
✔ Noatime para o banco
✔ +Writeback para o pg_xlog;
Ajustes no PostgreSQL
✔ max_connections: menor número possível;
✔ shared_buffers: 8GB ou ¼ da RAM disponível;
✔ maintenance_work_mem: a maior tabela do seu
catalogo, senão grande o suficiente para ser maior
que 75% das tabelas;
✔ checkpoint_segments: entre 16 e 128;
✔ checkpoint_timeout: entre 10min e 30min;
✔ Se possível utilize um pool de conexões: PgBouncer;
✔ Sempre monitore e ajuste apenas 1 item por vez;
Ajustes no PostgreSQL
✔ max_connections: menor número possível;
✔ shared_buffers: 8GB ou ¼ da RAM disponível;
✔ maintenance_work_mem: a maior tabela do seu catalogo, senão
grande o suficiente para ser maior que 75% das tabelas;
✔ checkpoint_segments: entre 16 e 128;
✔ checkpoint_timeout: entre 10min e 30min;
✔ Jamais desligue o autovacuum
✔ Se possível utilize um pool de conexões: PgBouncer;
✔ Sempre monitore e ajuste apenas 1 item por vez;
Ajustes no Modelo de Dados
✔ Use o tipo de dados certo para cada coisa;
✔ PK? procure usar naturais, CPF não é chave
natural ;)
✔ Tabela genérica, campo flex – Se existir remova e
nem pergunte quem criou… Seja mau.
✔ Monitore todos objetos – Você é obrigado a
conhecer o que onera seu banco
✔ ESTRUTURAS DE DADOS FICAM NA APLICAÇÃO
(PILHAS E FILAS)
PostgreS
Ajuste na Linguagem
✔ Aprenda Linux… Só pra não esquecer ;)
✔ Se o SQL resolve… Então basta
✔ Procure controlar o tamanho de suas transações
✔ Monitore todos objetos – Você é obrigado a
conhecer o que onera seu banco e como onera
✔ Para relatórios, faça o possível para utilizar views
materializadas
✔ INSERT < INSERT múltiplo < Prepared Trans ??? <
copy < insert .. select
PostgreS
Considerações Finais
Considerações Finais
Considerações Finais
Perguntas ??
Parceiros
Telefones: (61) 3039-9700 / FAX: (61) 3039-9701
E-mail: comercial@tecnisys.com.br
Visite nosso site http://www.tecnisys.com.br
Contato
Obrigado!
www.linkedin.com/in/gerdan

Mais conteúdo relacionado

Mais procurados

A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCamp
George Guimarães
 

Mais procurados (14)

Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Palestra - Meetup WordPress Brasília 2014 - WordPress vs Hacker
Palestra  - Meetup WordPress Brasília 2014 - WordPress vs HackerPalestra  - Meetup WordPress Brasília 2014 - WordPress vs Hacker
Palestra - Meetup WordPress Brasília 2014 - WordPress vs Hacker
 
Open ldap criando e explorando um overlay
Open ldap   criando e explorando um overlayOpen ldap   criando e explorando um overlay
Open ldap criando e explorando um overlay
 
OpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayOpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlay
 
A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCamp
 
Limitação de banda para p2 p mikrotik v5 e v6
Limitação de banda para p2 p mikrotik v5 e v6Limitação de banda para p2 p mikrotik v5 e v6
Limitação de banda para p2 p mikrotik v5 e v6
 
Receitas XE
Receitas XEReceitas XE
Receitas XE
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Minicurso EPOTI: Automação de Infraestrutura com PUPPET.
Minicurso EPOTI: Automação de Infraestrutura com PUPPET.Minicurso EPOTI: Automação de Infraestrutura com PUPPET.
Minicurso EPOTI: Automação de Infraestrutura com PUPPET.
 
Deixando aplicações Laravel mais rápidas
Deixando aplicações Laravel mais rápidasDeixando aplicações Laravel mais rápidas
Deixando aplicações Laravel mais rápidas
 
Administradores e suas gambiarras
Administradores e suas gambiarrasAdministradores e suas gambiarras
Administradores e suas gambiarras
 
Tunando sua aplicação LNMP
Tunando sua aplicação LNMPTunando sua aplicação LNMP
Tunando sua aplicação LNMP
 
Drupal + Rex
Drupal + RexDrupal + Rex
Drupal + Rex
 
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
 

Semelhante a Tunning PostgreSQL em modo OGRO - 13º Latinoware

Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
Impacta Eventos
 

Semelhante a Tunning PostgreSQL em modo OGRO - 13º Latinoware (20)

Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores Linux
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
Design Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com CtoolsDesign Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com Ctools
 
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
 
PGConf2019 - JIT ONE MORE TIME
PGConf2019 - JIT ONE MORE TIMEPGConf2019 - JIT ONE MORE TIME
PGConf2019 - JIT ONE MORE TIME
 
Dev Parana - Praticas Devops aplicadas a Big Data
Dev Parana - Praticas Devops aplicadas a Big DataDev Parana - Praticas Devops aplicadas a Big Data
Dev Parana - Praticas Devops aplicadas a Big Data
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
 
BIG DATA na UFSM
BIG DATA na UFSMBIG DATA na UFSM
BIG DATA na UFSM
 
TechEd_OFC305
TechEd_OFC305TechEd_OFC305
TechEd_OFC305
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
 
Forefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteForefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamente
 
Fortalecendo seus Servidores em Linux(Hardening) - Minimizando os ataques - S...
Fortalecendo seus Servidores em Linux(Hardening) - Minimizando os ataques - S...Fortalecendo seus Servidores em Linux(Hardening) - Minimizando os ataques - S...
Fortalecendo seus Servidores em Linux(Hardening) - Minimizando os ataques - S...
 
Day 0 iniciando na carreira em ti
Day 0   iniciando na carreira em tiDay 0   iniciando na carreira em ti
Day 0 iniciando na carreira em ti
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Mulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit BrazilMulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit Brazil
 
Projeto TCOS - III ENSOL
Projeto TCOS - III ENSOLProjeto TCOS - III ENSOL
Projeto TCOS - III ENSOL
 
Organizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaOrganizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gosta
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 

Tunning PostgreSQL em modo OGRO - 13º Latinoware

  • 2. Quem está aqui?? Gerdan Rezende dos Santos  Líder Técnico e Consultor em Banco de Dados e na Tecnisys Tecnologias inovadoras  Graduado em Ciências da Computação pela Universidade Paulista  Pós-graduado em Sistemas de Informação e Aplicações WEB  Pós-graduado em Sistemas de Informação Orientação a Objetos  MCT em SQLServer e .NET  Ativo nas comunidades PostgreSQL nacional e internacional, colaborador principalmente nos testes de novas funcionalidades.  Já trabalhou em grandes Data Centers, como: MEC/Fies, MJ/PRF, MME/DNPM, MCTI, Cluster Ativo x Ativo Armazém Paraíba, TRT/PJe,
  • 3. TECNISYS ➢ Atuando como provedora de soluções tecnológicas a mais de 25 anos. Somos referência nacional em tecnologia Open Source. ➢ Temos parcerias de sucesso firmadas com empresas de renome mundial, fornecendo suporte técnico, consultoria, treinamentos oficiais e certificações
  • 7. ONDE COMEÇA O PROBLEMA CRUD
  • 8. E QUAL A RELAÇÃO ? FONTE: STORAGE TECNOLOGY – PRICE, PERFORMANDO & CAPACITY SUN
  • 9. LOG TRANSACIONAL - WAL Após um COMMIT um registro de WAL é gerado; Após um checkpoint os DATAFILES são atualizados; Se houver problemas o PostgreSQL vai recorrer ao WAL(restart, falhas, rollback);
  • 10. Onde está o problema mesmo ? 50% estão em SQL mal escrito; 25% estão em modelagem de dados mal feita; 15% estão em ajustes errôneos do SGBD; 5% estão em ajustes ruins do S.O.; e 5% estão em hardware mal dimensionado
  • 11. Onde??? Hardware ✔ Servidor dedicado; ✔ Disco dedicados; ✔ Você vai definir o ambiente? Ótimo… Discos, memória e processador; ✔ SSD SLC > SSD MLC > Fiber Channel > SAS > jogue os SATA FORA; ✔ RAID 10> RAID 1 > RAID 6 > RAID 5 ✔ Processadores? Quantos mais cache e memória melhor...
  • 12. Onde??? S.O. ✔ O melhor é aquele que você tem domínio ✔ É obrigatório utilizar no mínimo arquitetura 64bits ✔ RAID por software NÃO EkxisISTE - Pe. Kevedo ✔ Se possível descarte abstração de particionamento por software “LVM” ✔ Remova qualquer serviço que não for necessário: Bluetooth, Apache, Int. Gráfica, etc… ✔ Aprenda muito, mas muito mesmo Linux – Ref. item 01
  • 13. Onde??? Discos ✔ / Pergunte ao SysAdmin senão ext4 nele ✔ /boot Pergunte ao SysAdmin senão ext4 nele ✔ PGDATA (RAID 10 OU 1 + XFS OU EXT4 + noatime) ✔ pg_xlog (ext3 + noatime + writeback) ✔ Tablespaces com dados históricos (RAID 5 com XFS ou EXT4 + noatime) ✔ BACKUP E ARCHIVES (Lembra dos SATA, pegue eles de volta do lixo)
  • 14. Ajustes no S.O. ✔ Aprender o Linux ✔ Sysctl.conf ✔ Semáforos; ✔ kernel.shmmax (½ da RAM disponível); ✔ file-max; ✔ overcommit; ✔ Limits.conf ✔ nofile; ✔ nproc; ✔ fstab ✔ Noatime para o banco ✔ +Writeback para o pg_xlog;
  • 15. Ajustes no PostgreSQL ✔ max_connections: menor número possível; ✔ shared_buffers: 8GB ou ¼ da RAM disponível; ✔ maintenance_work_mem: a maior tabela do seu catalogo, senão grande o suficiente para ser maior que 75% das tabelas; ✔ checkpoint_segments: entre 16 e 128; ✔ checkpoint_timeout: entre 10min e 30min; ✔ Se possível utilize um pool de conexões: PgBouncer; ✔ Sempre monitore e ajuste apenas 1 item por vez;
  • 16. Ajustes no PostgreSQL ✔ max_connections: menor número possível; ✔ shared_buffers: 8GB ou ¼ da RAM disponível; ✔ maintenance_work_mem: a maior tabela do seu catalogo, senão grande o suficiente para ser maior que 75% das tabelas; ✔ checkpoint_segments: entre 16 e 128; ✔ checkpoint_timeout: entre 10min e 30min; ✔ Jamais desligue o autovacuum ✔ Se possível utilize um pool de conexões: PgBouncer; ✔ Sempre monitore e ajuste apenas 1 item por vez;
  • 17. Ajustes no Modelo de Dados ✔ Use o tipo de dados certo para cada coisa; ✔ PK? procure usar naturais, CPF não é chave natural ;) ✔ Tabela genérica, campo flex – Se existir remova e nem pergunte quem criou… Seja mau. ✔ Monitore todos objetos – Você é obrigado a conhecer o que onera seu banco ✔ ESTRUTURAS DE DADOS FICAM NA APLICAÇÃO (PILHAS E FILAS) PostgreS
  • 18. Ajuste na Linguagem ✔ Aprenda Linux… Só pra não esquecer ;) ✔ Se o SQL resolve… Então basta ✔ Procure controlar o tamanho de suas transações ✔ Monitore todos objetos – Você é obrigado a conhecer o que onera seu banco e como onera ✔ Para relatórios, faça o possível para utilizar views materializadas ✔ INSERT < INSERT múltiplo < Prepared Trans ??? < copy < insert .. select PostgreS
  • 24. Telefones: (61) 3039-9700 / FAX: (61) 3039-9701 E-mail: comercial@tecnisys.com.br Visite nosso site http://www.tecnisys.com.br Contato