SlideShare uma empresa Scribd logo
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 2015
Adriano Schmidt
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
ECRAYON Tecnologia Criativa
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
dieotavio
 
Django no AWS
Django no AWSDjango no AWS
Django no AWS
Rafael Nunes
 
Arquitetura Web no AWS
Arquitetura Web no AWSArquitetura Web no AWS
Arquitetura Web no AWS
Rafael Nunes
 
Palestra FISL 14 JBoss Cluster
Palestra FISL 14 JBoss ClusterPalestra FISL 14 JBoss Cluster
Palestra FISL 14 JBoss Cluster
Mauricio Magnani Jr
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
Alisson Pedrina
 
03 jax-ws
03 jax-ws03 jax-ws
03 jax-ws
Cristiano Agosti
 
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 7
Mauricio 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
 
WordPress MU
WordPress MUWordPress MU
WordPress MU
Gustavo Silva Bordoni
 
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
 
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
 
Spring Rest
Spring RestSpring Rest
Spring Rest
Paula Santana
 
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
Dextra
 
JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
Edgar Silva
 
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á
 
PHP FrameWARks - CakePHP
PHP FrameWARks - CakePHPPHP FrameWARks - CakePHP
PHP FrameWARks - CakePHP
Marcio Albuquerque
 

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 em alta performance

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
Johnes 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 II
Matheus Espanhol
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
Pedro 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 Broker
Jonatan 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 leopardo
elliando dias
 
PostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaPostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manada
Fabio 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 Suite
Roberto Mello
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
Campus 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.6
MySQL Brasil
 
Conceitoseaplicaes
ConceitoseaplicaesConceitoseaplicaes
Conceitoseaplicaes
Leonardo Medeiros Martins
 
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
e-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.0
Marcos 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.0
Marcos William Valentini
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
Douglas V. Pasqua
 
Treinamento Data Guard
Treinamento Data GuardTreinamento Data Guard
Treinamento Data Guard
Douglas Paiva de Sousa
 
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ças
Leonardo Pedroso Costa
 

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

Último

Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
tnrlucas
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Annelise Gripp
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
anpproferick
 
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptxREDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
IranyGarcia
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
anpproferick
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
Rafael Santos
 

Último (6)

Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
 
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptxREDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
 

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