SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresDouglas V. Pasqua
 
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 HackerAs Zone
 
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 overlayMarcelo Fleury
 
OpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayOpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayDiego Santos
 
A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampGeorge Guimarães
 
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 v6Junior Marques
 
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 leopardoFabio Telles Rodriguez
 
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.Adriel Viana
 
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ápidasDanilo Pinotti
 
Administradores e suas gambiarras
Administradores e suas gambiarrasAdministradores e suas gambiarras
Administradores e suas gambiarrasdebian-rs
 
Tunando sua aplicação LNMP
Tunando sua aplicação LNMPTunando sua aplicação LNMP
Tunando sua aplicação LNMPLeandro Mendes
 
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...Zabbix BR
 

La actualidad más candente (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...
 

Similar 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 LinuxSoftD Abreu
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores LinuxAlessandro Silva
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores LinuxImpacta Eventos
 
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 Ctoolse-Setorial
 
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 ...Gleicon Moraes
 
PGConf2019 - JIT ONE MORE TIME
PGConf2019 - JIT ONE MORE TIMEPGConf2019 - JIT ONE MORE TIME
PGConf2019 - JIT ONE MORE TIMEGerdan Santos
 
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 DataAlexandre Cardoso
 
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 sourceMatheus Espanhol
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeBoteco 4Linux
 
Forefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteForefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteUilson Souza
 
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...Bruno Alexandre
 
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 tiLuis Henrique Costa
 
Projeto TCOS - III ENSOL
Projeto TCOS - III ENSOLProjeto TCOS - III ENSOL
Projeto TCOS - III ENSOLAécio Pires
 
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 gostaJohnathan Cardoso
 

Similar 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
 

Último

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 

Último (9)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

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