SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015Adriano Schmidt
 
Virtualização
VirtualizaçãoVirtualização
Virtualizaçãodieotavio
 
Arquitetura Web no AWS
Arquitetura Web no AWSArquitetura Web no AWS
Arquitetura Web no AWSRafael Nunes
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com JavaAlisson Pedrina
 
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...Bravo Tecnologia
 
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 7Mauricio Magnani Jr
 
Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Afonso Brandão
 
Lançamento KES e Security Center
Lançamento KES e Security CenterLançamento KES e Security Center
Lançamento KES e Security CenterCentral Info
 
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.Eduardo Medeiros
 
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 EC2Dextra
 
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)Aryel Tupinambá
 
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...Aryel Tupinambá
 

Mais procurados (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
 

Semelhante a Cloud PostgreSQL escalável e de alto desempenho

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 - PostgreSQLJohnes Castro
 
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 IIMatheus Espanhol
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPedro Fernandes 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 BrokerJonatan Ritter
 
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 leopardoelliando dias
 
PostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaPostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaFabio Telles Rodriguez
 
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 SuiteRoberto Mello
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
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)Wagner Bianchi
 
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.6MySQL Brasil
 
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
 
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]Tiago Hillebrandt
 
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?Roberto Garcia de Bem
 
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.0Marcos William Valentini
 
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.0Marcos William Valentini
 
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
 
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...Joao Galdino Mello de Souza
 
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çasLeonardo Pedroso Costa
 

Semelhante a Cloud PostgreSQL escalável e de alto desempenho (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
 

Cloud PostgreSQL escalável e de alto desempenho

  • 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