SlideShare a Scribd company logo
1 of 17
Download to read offline
Cloud PostgreSQL em alta
performance
15/12/2020
Fábio de Carvalho Vieira
Powered
COMPARAÇÃO
● Downtimes/Oscilações no Deploy
● Downtimes/Oscilações ao reiniciar serviço
● Alto risco de falhas ou sobrecarga na VM
● Dificuldade para escalar
● Modular e Flexível
● Deploy e atualizações independentes
● Mais fácil para escalar e manter
DIAGRAMA
ESCOPO PROJETO - CHECKLIST
★ Qual versão utilizar:
https://www.postgresql.org/about/featurematrix/
★ Qual topologia utilizar ?
★ Utilizar Balanceador ?
★ Otimização com PostgresqlTuner
★ Monitoramento
FOCO NA SOLUÇÃO
1. Tuning do banco de dados
2. Otimização das consultas e monitoramento de queries lentas
3. Escalabilidade dos servidores e infra estrutura
TUNING DO BANCO
1. Uso de memória / buffer / cache
2. Principais variáveis para levar em consideração ao tuning:
shared_buffer, wal_buffers, effective_cache_size, work_mem,
maintenance_work_mem, max_connections,
checkpoints_segments, random_page_cost
3. Utilizando o postgresqltuner (https://github.com/jfcoz/postgresqltuner)
4. Tratar resultados e aplicar configurações
OTIMIZAÇÃO DAS CONSULTAS
● Monitorar consultas lentas e re-escrever ou eliminar
● SLOW QUERIES
● Dicas de como analisar queries lentas:
https://marmelab.com/blog/2019/02/13/how-to-improve-postgres-perfor
mances.html
● Ferramenta auxiliar: http://pgbadger.darold.net
SAVEINCLOUD COM DB ESCALÁVEIS
Vantagens
● Escalabilidade Vertical e Horizontal (assinados automaticamente em
diferentes hardwares físicos)
● Instalação de ambientes complexos em alguns cliques
● Rede Privada de Alta Performance
● Discos SSD Enterprise com RAID 10
● Flexibilidade para contratar mais IOPs, os ambientes iniciam com 1000
IOPs
● Backup Full diário sem custos
AUTOMAÇÃO
➔ Opção de replicação master-slave automático
➔ Para Master-Master opções manuais aqui
NA PRÁTICA - PostgreSQL ESCALÁVEL
Balancer
➔ HA Proxy ou NGINX Balancer
(mais simples)
➔ https://www.pgpool.net
(mais robusto)
➔ Automatic Fail Over
➔ Restart containers de DB
sem downtime
➔ Escalabilidade
Balancer no JDBC
➔ Separar os bancos por vírgula e os parâmetros desejados,
exemplo:
➔ jdbc:postgresql://banco1.saveincloud.com:3433,banco2.saveincloud.com:3433,banco3.saveincloud.com:3433/ac
counting? targetServerType=preferSlave&loadBalanceHosts=true
targetServerType: any: The JDBC driver connects to any database. / master: The JDBC driver only connects to the primary
database. / slave: The JDBC driver only connects to the secondary database. / preferSlave: The JDBC driver connects to the
secondary database in priority. If no secondary database is available, the JDBC driver connects to the primary database.
loadBalanceHosts: specifies whether to randomly connect to the databases. Valid values:
● False: The databases are connected in the sequence specified in the command. This is the default value.
● True: The databases are randomly connected.
Balancer no libpq
➔ Utilizar a biblioteca https://www.postgresql.org/docs/9.5/libpq.html
➔ Detalhes de implementação abaixo:
https://www.postgresql.org/docs/12/libpq-connect.html?spm=a2c6
3.p38356.879954.4.5933696bm4ERNA#LIBPQ-CONNSTRING
Extra
➔ https://bucardo.org/ - Ferramenta com diversas funcionalidades
interessantes
BÔNUS
E-MAIL
TOKEN
www.saveincloud.com.br
suporte@saveincloud.com
OBRIGADO!
Powered

More Related Content

What's hot

Lançamento KES e Security Center
Lançamento KES e Security CenterLançamento KES e Security Center
Lançamento KES e Security Center
Central Info
 

What's hot (20)

WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Django no AWS
Django no AWSDjango no AWS
Django no AWS
 
Arquitetura Web no AWS
Arquitetura Web no AWSArquitetura Web no AWS
Arquitetura Web no AWS
 
Palestra FISL 14 JBoss Cluster
Palestra FISL 14 JBoss ClusterPalestra FISL 14 JBoss Cluster
Palestra FISL 14 JBoss Cluster
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
 
03 jax-ws
03 jax-ws03 jax-ws
03 jax-ws
 
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
 
Cluster e Alta Disponibilidade na Prática com JBoss AS 7
Cluster e Alta Disponibilidade na Prática com JBoss AS 7Cluster e Alta Disponibilidade na Prática com JBoss AS 7
Cluster e Alta Disponibilidade na Prática com JBoss AS 7
 
Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)
 
WordPress MU
WordPress MUWordPress MU
WordPress MU
 
Lançamento KES e Security Center
Lançamento KES e Security CenterLançamento KES e Security Center
Lançamento KES e Security Center
 
JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.
 
Spring Rest
Spring RestSpring Rest
Spring Rest
 
Maratona JBoss 2010 - JBoss AS Amazon EC2
Maratona JBoss 2010 - JBoss AS Amazon EC2Maratona JBoss 2010 - JBoss AS Amazon EC2
Maratona JBoss 2010 - JBoss AS Amazon EC2
 
JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
 
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
 
PHP FrameWARks - CakePHP
PHP FrameWARks - CakePHPPHP FrameWARks - CakePHP
PHP FrameWARks - CakePHP
 

Similar to Cloud PostgreSQL em alta performance

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
elliando dias
 

Similar to Cloud PostgreSQL em alta performance (20)

Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool II
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
High Avaiability Architeture with Oracle Data Guard Broker
High Avaiability Architeture with Oracle Data Guard BrokerHigh Avaiability Architeture with Oracle Data Guard Broker
High Avaiability Architeture with Oracle Data Guard Broker
 
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
 
PostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaPostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manada
 
Containers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteContainers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container Suite
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6
 
Conceitoseaplicaes
ConceitoseaplicaesConceitoseaplicaes
Conceitoseaplicaes
 
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
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
ProxySQL no MySQL: Apenas um load balancer?
ProxySQL no MySQL: Apenas um load balancer?ProxySQL no MySQL: Apenas um load balancer?
ProxySQL no MySQL: Apenas um load balancer?
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Treinamento Data Guard
Treinamento Data GuardTreinamento Data Guard
Treinamento Data Guard
 
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 

Recently uploaded

Recently uploaded (9)

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
 
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
 
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
 
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 - 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
 
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
 
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
 

Cloud PostgreSQL em alta performance

  • 1. Cloud PostgreSQL em alta performance 15/12/2020 Fábio de Carvalho Vieira Powered
  • 2. COMPARAÇÃO ● Downtimes/Oscilações no Deploy ● Downtimes/Oscilações ao reiniciar serviço ● Alto risco de falhas ou sobrecarga na VM ● Dificuldade para escalar ● Modular e Flexível ● Deploy e atualizações independentes ● Mais fácil para escalar e manter
  • 4. ESCOPO PROJETO - CHECKLIST ★ Qual versão utilizar: https://www.postgresql.org/about/featurematrix/ ★ Qual topologia utilizar ? ★ Utilizar Balanceador ? ★ Otimização com PostgresqlTuner ★ Monitoramento
  • 5. FOCO NA SOLUÇÃO 1. Tuning do banco de dados 2. Otimização das consultas e monitoramento de queries lentas 3. Escalabilidade dos servidores e infra estrutura
  • 6. TUNING DO BANCO 1. Uso de memória / buffer / cache 2. Principais variáveis para levar em consideração ao tuning: shared_buffer, wal_buffers, effective_cache_size, work_mem, maintenance_work_mem, max_connections, checkpoints_segments, random_page_cost 3. Utilizando o postgresqltuner (https://github.com/jfcoz/postgresqltuner) 4. Tratar resultados e aplicar configurações
  • 7. OTIMIZAÇÃO DAS CONSULTAS ● Monitorar consultas lentas e re-escrever ou eliminar ● SLOW QUERIES ● Dicas de como analisar queries lentas: https://marmelab.com/blog/2019/02/13/how-to-improve-postgres-perfor mances.html ● Ferramenta auxiliar: http://pgbadger.darold.net
  • 8. SAVEINCLOUD COM DB ESCALÁVEIS Vantagens ● Escalabilidade Vertical e Horizontal (assinados automaticamente em diferentes hardwares físicos) ● Instalação de ambientes complexos em alguns cliques ● Rede Privada de Alta Performance ● Discos SSD Enterprise com RAID 10 ● Flexibilidade para contratar mais IOPs, os ambientes iniciam com 1000 IOPs ● Backup Full diário sem custos
  • 9. AUTOMAÇÃO ➔ Opção de replicação master-slave automático ➔ Para Master-Master opções manuais aqui NA PRÁTICA - PostgreSQL ESCALÁVEL
  • 10. Balancer ➔ HA Proxy ou NGINX Balancer (mais simples) ➔ https://www.pgpool.net (mais robusto) ➔ Automatic Fail Over ➔ Restart containers de DB sem downtime ➔ Escalabilidade
  • 11. Balancer no JDBC ➔ Separar os bancos por vírgula e os parâmetros desejados, exemplo: ➔ jdbc:postgresql://banco1.saveincloud.com:3433,banco2.saveincloud.com:3433,banco3.saveincloud.com:3433/ac counting? targetServerType=preferSlave&loadBalanceHosts=true targetServerType: any: The JDBC driver connects to any database. / master: The JDBC driver only connects to the primary database. / slave: The JDBC driver only connects to the secondary database. / preferSlave: The JDBC driver connects to the secondary database in priority. If no secondary database is available, the JDBC driver connects to the primary database. loadBalanceHosts: specifies whether to randomly connect to the databases. Valid values: ● False: The databases are connected in the sequence specified in the command. This is the default value. ● True: The databases are randomly connected.
  • 12. Balancer no libpq ➔ Utilizar a biblioteca https://www.postgresql.org/docs/9.5/libpq.html ➔ Detalhes de implementação abaixo: https://www.postgresql.org/docs/12/libpq-connect.html?spm=a2c6 3.p38356.879954.4.5933696bm4ERNA#LIBPQ-CONNSTRING
  • 13. Extra ➔ https://bucardo.org/ - Ferramenta com diversas funcionalidades interessantes
  • 16. TOKEN