SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Tudo que você queria saber sobre o 
 uso de discos em servidores 
 PostgreSQL e tinha vergonha de 
 perguntar

                      por Fábio Telles Rodriguez




              
Agenda
   Discos
   Controladoras
   Storage
   RAID
   Sistemas de Arquivo
   Particionamento
   Exemplos práticos


                       
Discos
   SATA – Baixo desempenho
   SCSI – Substituído pelo SAS
   SAS – Armazenamento local
   Fibre Channel – Utilizado em storages 
   SSD – Hot files!




                        
Discos
               Capacidade Latência         Custo /   Custo /
  Tecnologia      (GB)      (µs)    IOPS IOPS (USD) GB (USD)
Cloud Storage Ilimitado    60.000     20  0,015/GB 0,15 / mês
 HDs de alta
 capacidade      2.500     12.000    250     1,67     0,15
 HDs de alto
desempenho         300     7.000     500     1,52     1,30
SSD (escrita)      64       300    5.000     0,20      13
 SSD (leitura)     64        45    30.000    0,03      13
    DRAM            8      0,005 500.000    0,001      52
Fonte: (Sun) Database performance tuning for SSD based storage




                                                  
Solid State Disks
   RAM: 
              Storages com memórias RAM conectadas por FC;
              Baterias alimentam discos que gravam conteúdo da 
                RAM em caso de falta de energia;
              600.000 IOPS !!!
   Flash:
              Uso de SLC Flash, algorítimos especiais e outras 
                técnicas para aumentar a vida útil e desempenho;
              100.000 IOPS !!!
   Flash + RAM
                              
Controladoras ou melhor:
               Host Bus Adapter (HBA)
   Discos locais:
              SATA,  SAS, SCSI
                      Número de discos suportados
                      Buffer de leitura e Buffer de escrita
                      Bateria interna X Bateria externa
                      Suporte a RAID
   Storage:
              ISCSI, FC, Infiniband
                      Uso de fabric
                      Software p/ load balance e fail over
                                 
Storage
   Suporte a discos: SATA, SAS, SCSI, FC
   Suporte a vários tipos de RAID
   Suporte a diversas interfaces: Infiniband, FC, iSCSI
   Buffer gerenciável de 2GB a 256GB 
   Baterias confiáveis
   Software para tuning, snapshot, gerencimento, etc
   Redundância de controladoras, discos, HBAs, 
     fontes, baterias, ventoinhas, etc;

                       
RAID
            Redundant Array of Independent Drives

   JBOD (just a bonch of disks)
   RAID 0 (strip)
   RAID 1 (mirror)
   RAID 2, RAID 3, RAID 4
   RAID 5 (paridade distribuída)
   RAID 6 (paridade dupla distribuída)
   RAID 10 (strip + mirror)


                        
RAID
   1             300               2x         1X       Baixo
Discos: 4x 300GB (sem hot spare)
 Tipo Espaço (GB) Leitura                   Gravação   Risco
   5      900       3x                        1,5X     Médio
   6      600       2x                        1,5X     Baixo
  10      600       2x                         2x      Baixo
Discos: 8x 300GB (sem hot spare)
 Tipo Espaço (GB) Leitura                   Gravação   Risco
   5     2100       7x                         3x       Alto
   6     1800       6x                         3x      Médio
  10     1200       4x                         4x      Baixo




                                         
Sisemas de Arquivos
   Linux:
               EXT2, EXT3, EXT4, XFS, ReiserFS
   FreeBSD: 
               UFS2
   Solaris: 
               UFS2, ZFS
   Windows
               FAT, NTFS

                             
Sistemas de Arquivos
   Desempenho:
              Testes c/ pgbench (em linux):
                      $ pgbench ­i 1000 testedb
                      $ pgbench ­c 100 ­T 3600
              EXT2 >> XFS > EXT4 > EXT3 > ReiserFS
   Segurança
              EXT4 = EXT3 = XFS > ReixerFS >> EXT2




                                 
Particionamento
   Porquê separar diferentes tipos de arquivos?
              Desempenho;
              Segurança;
              Facilidade de administração.
   Ambientes críticos e com boa mão de obra 
     dedicada: divisão agressiva;
   Ambiente não crítico com mão de obra ocasional: 
     agrupamento em poucas partições.


                              
Particionamento
   SO: /boot, /var, /usr, /home, /tmp, /
   swap;
   Log de trasação: pg_xlog,
        mv /postgres/teste/pg_xlog/ /postgres
        ln -s /postgres/pg_xlog /postgres/teste/pg_xlog
    Aquivamento (postgresql.conf);
        archive_mode = on
        archive_command = 'cp "%p" /postgres/archive/"%f"'
        archive_timeout = 3600
   Logs de erro e monitoramento;
        http://www.postgresql.org/docs/current/static/runtime­config­logging.html#RUNTIME­CONFIG­LOGGING­WHERE

   Backup local;
                                         
Particionamento
   Tablespaces temporário (postgresql.conf): 
       temp_tablespaces = '/postgres/temp'

   Tablespaces por tipo ou uso (index, data, hist, 
     OLTP, BI, etc)
                mkdir /postgres/data /postgres/index /postgres/old /postgres/rh
                CREATE TABLESPACE data LOCATION '/postgres/data';
                CREATE TABLESPACE data LOCATION '/postgres/index';
                CREATE TABLESPACE data LOCATION '/postgres/old';
                CREATE TABLESPACE data OWNER 'hr' LOCATION '/postgres/index'

   SET default_tablespace = '/postgres'

                                      
Particionamento
   O que particionar, o que separar em discos / RAIDs 
     distintos?
              Depende de quantos discos, RAIDs você tem 
                disponível;
              Depende da mão­de­obra disponível;
              Depende do perfil da carga da aplicação;
              Depende do volume e tipo de dados da aplicação;




                              
Exemplos práticos
Caso 1 - Ambiente
   Base de 50GB;
   Aplicação com 50 usuários, carga mista de OLTP e 
     relatórios;
   Sem DBA dedicado;
   Baixo poder de investimento;
   Ambiente não crítico;
   Discos: 2 discos SAS 300GB.

                      
Exemplos práticos
Caso 1 - Sugestão
   RAID 1;
              /boot (100MB)
              / (40GB)
              /postgres (dados) (120GB)
              /backup (backup) (120GB)
              swap (4GB)




                             
Exemplos práticos
Caso 2 - Ambiente
   Base de 10GB;
   Aplicação Web com milhares de acessos 
     simultâneos;
   Administrador de sistema monitora o PostgreSQL 
     com frequência;
   Disponibilidade e desempenho críticos;
   Discos: 5 discos SAS 300GB.

                      
Exemplos práticos
Caso 2 - Sugestão
   1º RAID 1;
              /boot (100MB)
              / (50GB) 
              /postgres/pg_xlog  (20GB)
              /backup (backup) (200GB)
              swap (8GB)
   2º RAID 1 + Hot Spare
              /postgres/data (300GB)

                             
Exemplos práticos
Caso 3 - Ambiente
   ERP c/ 250 GB:
              OLTP c/ 500 usuários simultâneos;
              Relatórios pesados de fechamento mensal;
              Cargas em lote diárias;
   DBA + Sysadmin;
   Disponibilidade + perda de dados + desempenho 
     críticos;
   Discos: 12 discos SAS 300GB.
                              
Exemplos práticos

Caso 3 - Sugestão
   RAID 1 + hot spare / 15Krpm:
              /boot (100MB);
              / (20GB);
              /var (20GB);
              /postgres/pg_xlog (50GB)
              swap (8GB)



                               
Exemplos práticos
Caso 3 – Sugestão (continuação)
   RAID 10 c/ 4 discos (10Krpm):
          /postgres/archive (200GB);
          /postgres/backup (400GB);
   RAID 4 c/ 4 discos + hot spare / 15Krpm:
          /postgres/data (600GB);




                         
Exemplos práticos
Caso 4 – Ambiente
   OLAP + Data Mining (1TB)
          Cargas pesadas à noite;
          Poucos usuários realizando consultas complexas;
   Desempenho crítico;
   DBA e Sysadmin c/ nível sênior;
          3 discos locais: SAS 300GB 10Krpm
          12 discos em storage: FC 146GB 15Krpm 
          6 discos em storage: SAS 300GB 10Krpm

                          
Exemplos práticos
Caso 4 – Sugestão
   RAID 1 + Hot Spare ­ local
              /boot (100MB)
              / (50GB) 
              /var (50GB)
              /postgresql/pg_xlog (200GB) – EXT3 c/ noatime
              swap (16GB)




                              
Exemplos práticos
Caso 4 – Sugestão (continuação)
   RAID 5 c/ 5 discos SAS 10Krpm + hot spare:
          /postgresql/data/old (800GB) – XFS
          /postgresql/archive (400GB) – EXT3 c/ noatime + 
             writeback
   RAID 0 c/ 3 discos FC 15Krpm ­ Storage:
          /postgresql/data/temp (226GB) – EXT2
   RAID 10 c/ 8 discos FC15Krpm + hot spare:
          /postgresql/data/new (568 GB) – XFS c/ noatime
                         
Obrigado!
   Perguntas, Sugestões e cervejas!
   Contatos:
              telles@timbira.com.br
              gtalk/msn/mail: fabio.telles@gmail.com
              Skype: fabio_telles
              http://www.midstorm.org.br




                              

Mais conteúdo relacionado

Mais procurados

Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLRaul Oliveira
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universoelliando dias
 
Dispositivos de Armazenamento em massa
Dispositivos de Armazenamento em massaDispositivos de Armazenamento em massa
Dispositivos de Armazenamento em massaelliando dias
 
PostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesPostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesFernando Ike
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaHenrique Lima
 
Somebody save my data! - Gerenciando seus dados com software livre por Daniel...
Somebody save my data! - Gerenciando seus dados com software livre por Daniel...Somebody save my data! - Gerenciando seus dados com software livre por Daniel...
Somebody save my data! - Gerenciando seus dados com software livre por Daniel...Jerônimo Medina Madruga
 
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini Tchelinux
 
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
 
Aula Grátis de RAID via software e LVM
Aula Grátis de RAID via software e LVMAula Grátis de RAID via software e LVM
Aula Grátis de RAID via software e LVMLeo Amorim
 
Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos iiCarlos Melo
 
Apresentacao raid by_crowdertech
Apresentacao raid by_crowdertechApresentacao raid by_crowdertech
Apresentacao raid by_crowdertechBruno Ribeiro
 
Postgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CPostgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CRibamar Sousa
 
2010 1 sistemas_operacionais_seminario
2010 1 sistemas_operacionais_seminario2010 1 sistemas_operacionais_seminario
2010 1 sistemas_operacionais_seminarioCarlos
 
Aula 05 informática aplicada - discos e sistemas de arquivos
Aula 05  informática aplicada - discos e sistemas de arquivosAula 05  informática aplicada - discos e sistemas de arquivos
Aula 05 informática aplicada - discos e sistemas de arquivosRobson Ferreira
 

Mais procurados (20)

Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universo
 
Dispositivos de Armazenamento em massa
Dispositivos de Armazenamento em massaDispositivos de Armazenamento em massa
Dispositivos de Armazenamento em massa
 
PostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesPostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicações
 
PostgreSQL Conceitos e aplicações
PostgreSQL  Conceitos e aplicaçõesPostgreSQL  Conceitos e aplicações
PostgreSQL Conceitos e aplicações
 
Raid
RaidRaid
Raid
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Somebody save my data! - Gerenciando seus dados com software livre por Daniel...
Somebody save my data! - Gerenciando seus dados com software livre por Daniel...Somebody save my data! - Gerenciando seus dados com software livre por Daniel...
Somebody save my data! - Gerenciando seus dados com software livre por Daniel...
 
Linux instalação
Linux instalaçãoLinux instalação
Linux instalação
 
Postgres Big data
Postgres Big dataPostgres Big data
Postgres Big data
 
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
 
Replicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManagerReplicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManager
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Aula Grátis de RAID via software e LVM
Aula Grátis de RAID via software e LVMAula Grátis de RAID via software e LVM
Aula Grátis de RAID via software e LVM
 
Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos ii
 
Apresentacao raid by_crowdertech
Apresentacao raid by_crowdertechApresentacao raid by_crowdertech
Apresentacao raid by_crowdertech
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
Postgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CPostgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F C
 
2010 1 sistemas_operacionais_seminario
2010 1 sistemas_operacionais_seminario2010 1 sistemas_operacionais_seminario
2010 1 sistemas_operacionais_seminario
 
Aula 05 informática aplicada - discos e sistemas de arquivos
Aula 05  informática aplicada - discos e sistemas de arquivosAula 05  informática aplicada - discos e sistemas de arquivos
Aula 05 informática aplicada - discos e sistemas de arquivos
 

Semelhante a Configurando discos e armazenamento para PostgreSQL

RAID - Redundant Array of Independent Disks (Conjunto Reduntante de Discos I...
RAID - Redundant Array of Independent Disks (Conjunto Reduntante de Discos I...RAID - Redundant Array of Independent Disks (Conjunto Reduntante de Discos I...
RAID - Redundant Array of Independent Disks (Conjunto Reduntante de Discos I...elliando dias
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?pichiliani
 
Memórias de armazenamento
Memórias de armazenamentoMemórias de armazenamento
Memórias de armazenamentoAnderson Zardo
 
Armazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsArmazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsAmazon Web Services LATAM
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorsimoesflavio
 
Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1diogomendes99
 
Redes de computadores módulo 3
Redes de computadores módulo 3Redes de computadores módulo 3
Redes de computadores módulo 3ruitavares998
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorAndré bogas
 
[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows AzureVitor Tomaz
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com JavaAlisson Pedrina
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataRodrigo Almeida
 
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructureDBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructureFranky Weber Faust
 
Oracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoOracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoRodrigo Almeida
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeBoteco 4Linux
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaLucas Brasilino
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sqlRafael Redondo
 

Semelhante a Configurando discos e armazenamento para PostgreSQL (20)

RAID - Redundant Array of Independent Disks (Conjunto Reduntante de Discos I...
RAID - Redundant Array of Independent Disks (Conjunto Reduntante de Discos I...RAID - Redundant Array of Independent Disks (Conjunto Reduntante de Discos I...
RAID - Redundant Array of Independent Disks (Conjunto Reduntante de Discos I...
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?
 
Memórias de armazenamento
Memórias de armazenamentoMemórias de armazenamento
Memórias de armazenamento
 
Armazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsArmazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebs
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1
 
Redes de computadores módulo 3
Redes de computadores módulo 3Redes de computadores módulo 3
Redes de computadores módulo 3
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure
 
Storage
StorageStorage
Storage
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para Exadata
 
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructureDBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
 
Aula 17 hd
Aula 17 hdAula 17 hd
Aula 17 hd
 
Oracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoOracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & Migração
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sql
 
Aula 5 (raid)
Aula 5 (raid)Aula 5 (raid)
Aula 5 (raid)
 
Aula 5 (Raid)
Aula 5 (Raid)Aula 5 (Raid)
Aula 5 (Raid)
 

Mais de Fabio Telles Rodriguez

Data Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dadosData Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dadosFabio Telles Rodriguez
 
Aplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sqlAplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sqlFabio Telles Rodriguez
 
Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!Fabio Telles Rodriguez
 
Postgres Wonderland - Campus Party 2013
Postgres Wonderland - Campus Party 2013Postgres Wonderland - Campus Party 2013
Postgres Wonderland - Campus Party 2013Fabio Telles Rodriguez
 
Postgres Wonderland - PGDay Cascavél 2013
Postgres Wonderland - PGDay Cascavél 2013Postgres Wonderland - PGDay Cascavél 2013
Postgres Wonderland - PGDay Cascavél 2013Fabio Telles Rodriguez
 

Mais de Fabio Telles Rodriguez (20)

Data Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dadosData Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dados
 
Postgres level up
Postgres level upPostgres level up
Postgres level up
 
Explain this!
Explain this!Explain this!
Explain this!
 
High concurrency with Postgres
High concurrency with PostgresHigh concurrency with Postgres
High concurrency with Postgres
 
Aplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sqlAplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sql
 
Novidades do PostgreSQL 10
Novidades do  PostgreSQL 10Novidades do  PostgreSQL 10
Novidades do PostgreSQL 10
 
Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!
 
Trabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQLTrabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQL
 
PostgreSQL Rock Star
PostgreSQL Rock StarPostgreSQL Rock Star
PostgreSQL Rock Star
 
Oracle x PostgreSQL
Oracle x PostgreSQLOracle x PostgreSQL
Oracle x PostgreSQL
 
PostgreSQL Wonderland TDC-SP 2015
PostgreSQL Wonderland TDC-SP 2015PostgreSQL Wonderland TDC-SP 2015
PostgreSQL Wonderland TDC-SP 2015
 
Trabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQLTrabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQL
 
Postgres Chainsaw Massacre
Postgres Chainsaw MassacrePostgres Chainsaw Massacre
Postgres Chainsaw Massacre
 
Postgres Tuning
Postgres TuningPostgres Tuning
Postgres Tuning
 
Postgres Wonderland - PGDay CE2013
Postgres  Wonderland - PGDay CE2013Postgres  Wonderland - PGDay CE2013
Postgres Wonderland - PGDay CE2013
 
Postgres Wonderland - Campus Party 2013
Postgres Wonderland - Campus Party 2013Postgres Wonderland - Campus Party 2013
Postgres Wonderland - Campus Party 2013
 
Alta Concorrência com Postgres
Alta Concorrência com PostgresAlta Concorrência com Postgres
Alta Concorrência com Postgres
 
Alta Concorrência com Postgres
Alta Concorrência com PostgresAlta Concorrência com Postgres
Alta Concorrência com Postgres
 
Postgres, a "Metamorfose Ambulante"
Postgres, a "Metamorfose Ambulante"Postgres, a "Metamorfose Ambulante"
Postgres, a "Metamorfose Ambulante"
 
Postgres Wonderland - PGDay Cascavél 2013
Postgres Wonderland - PGDay Cascavél 2013Postgres Wonderland - PGDay Cascavél 2013
Postgres Wonderland - PGDay Cascavél 2013
 

Configurando discos e armazenamento para PostgreSQL

  • 2. Agenda  Discos  Controladoras  Storage  RAID  Sistemas de Arquivo  Particionamento  Exemplos práticos    
  • 3. Discos  SATA – Baixo desempenho  SCSI – Substituído pelo SAS  SAS – Armazenamento local  Fibre Channel – Utilizado em storages   SSD – Hot files!    
  • 4. Discos Capacidade Latência Custo / Custo / Tecnologia (GB) (µs) IOPS IOPS (USD) GB (USD) Cloud Storage Ilimitado 60.000 20 0,015/GB 0,15 / mês HDs de alta capacidade 2.500 12.000 250 1,67 0,15 HDs de alto desempenho 300 7.000 500 1,52 1,30 SSD (escrita) 64 300 5.000 0,20 13 SSD (leitura) 64 45 30.000 0,03 13 DRAM 8 0,005 500.000 0,001 52 Fonte: (Sun) Database performance tuning for SSD based storage    
  • 5. Solid State Disks  RAM:   Storages com memórias RAM conectadas por FC;  Baterias alimentam discos que gravam conteúdo da  RAM em caso de falta de energia;  600.000 IOPS !!!  Flash:  Uso de SLC Flash, algorítimos especiais e outras  técnicas para aumentar a vida útil e desempenho;  100.000 IOPS !!!  Flash + RAM    
  • 6. Controladoras ou melhor: Host Bus Adapter (HBA)  Discos locais:  SATA,  SAS, SCSI  Número de discos suportados  Buffer de leitura e Buffer de escrita  Bateria interna X Bateria externa  Suporte a RAID  Storage:  ISCSI, FC, Infiniband  Uso de fabric  Software p/ load balance e fail over    
  • 7. Storage  Suporte a discos: SATA, SAS, SCSI, FC  Suporte a vários tipos de RAID  Suporte a diversas interfaces: Infiniband, FC, iSCSI  Buffer gerenciável de 2GB a 256GB   Baterias confiáveis  Software para tuning, snapshot, gerencimento, etc  Redundância de controladoras, discos, HBAs,  fontes, baterias, ventoinhas, etc;    
  • 8. RAID Redundant Array of Independent Drives  JBOD (just a bonch of disks)  RAID 0 (strip)  RAID 1 (mirror)  RAID 2, RAID 3, RAID 4  RAID 5 (paridade distribuída)  RAID 6 (paridade dupla distribuída)  RAID 10 (strip + mirror)    
  • 9. RAID 1 300 2x 1X Baixo Discos: 4x 300GB (sem hot spare) Tipo Espaço (GB) Leitura Gravação Risco 5 900 3x 1,5X Médio 6 600 2x 1,5X Baixo 10 600 2x 2x Baixo Discos: 8x 300GB (sem hot spare) Tipo Espaço (GB) Leitura Gravação Risco 5 2100 7x 3x Alto 6 1800 6x 3x Médio 10 1200 4x 4x Baixo    
  • 10. Sisemas de Arquivos  Linux:  EXT2, EXT3, EXT4, XFS, ReiserFS  FreeBSD:   UFS2  Solaris:   UFS2, ZFS  Windows  FAT, NTFS    
  • 11. Sistemas de Arquivos  Desempenho:  Testes c/ pgbench (em linux):  $ pgbench ­i 1000 testedb  $ pgbench ­c 100 ­T 3600  EXT2 >> XFS > EXT4 > EXT3 > ReiserFS  Segurança  EXT4 = EXT3 = XFS > ReixerFS >> EXT2    
  • 12. Particionamento  Porquê separar diferentes tipos de arquivos?  Desempenho;  Segurança;  Facilidade de administração.  Ambientes críticos e com boa mão de obra  dedicada: divisão agressiva;  Ambiente não crítico com mão de obra ocasional:  agrupamento em poucas partições.    
  • 13. Particionamento  SO: /boot, /var, /usr, /home, /tmp, /  swap;  Log de trasação: pg_xlog,  mv /postgres/teste/pg_xlog/ /postgres  ln -s /postgres/pg_xlog /postgres/teste/pg_xlog   Aquivamento (postgresql.conf);  archive_mode = on  archive_command = 'cp "%p" /postgres/archive/"%f"'  archive_timeout = 3600  Logs de erro e monitoramento; http://www.postgresql.org/docs/current/static/runtime­config­logging.html#RUNTIME­CONFIG­LOGGING­WHERE  Backup local;    
  • 14. Particionamento  Tablespaces temporário (postgresql.conf):   temp_tablespaces = '/postgres/temp'  Tablespaces por tipo ou uso (index, data, hist,  OLTP, BI, etc)  mkdir /postgres/data /postgres/index /postgres/old /postgres/rh  CREATE TABLESPACE data LOCATION '/postgres/data';  CREATE TABLESPACE data LOCATION '/postgres/index';  CREATE TABLESPACE data LOCATION '/postgres/old';  CREATE TABLESPACE data OWNER 'hr' LOCATION '/postgres/index'  SET default_tablespace = '/postgres'    
  • 15. Particionamento  O que particionar, o que separar em discos / RAIDs  distintos?  Depende de quantos discos, RAIDs você tem  disponível;  Depende da mão­de­obra disponível;  Depende do perfil da carga da aplicação;  Depende do volume e tipo de dados da aplicação;    
  • 16. Exemplos práticos Caso 1 - Ambiente  Base de 50GB;  Aplicação com 50 usuários, carga mista de OLTP e  relatórios;  Sem DBA dedicado;  Baixo poder de investimento;  Ambiente não crítico;  Discos: 2 discos SAS 300GB.    
  • 17. Exemplos práticos Caso 1 - Sugestão  RAID 1;  /boot (100MB)  / (40GB)  /postgres (dados) (120GB)  /backup (backup) (120GB)  swap (4GB)    
  • 18. Exemplos práticos Caso 2 - Ambiente  Base de 10GB;  Aplicação Web com milhares de acessos  simultâneos;  Administrador de sistema monitora o PostgreSQL  com frequência;  Disponibilidade e desempenho críticos;  Discos: 5 discos SAS 300GB.    
  • 19. Exemplos práticos Caso 2 - Sugestão  1º RAID 1;  /boot (100MB)  / (50GB)   /postgres/pg_xlog  (20GB)  /backup (backup) (200GB)  swap (8GB)  2º RAID 1 + Hot Spare  /postgres/data (300GB)    
  • 20. Exemplos práticos Caso 3 - Ambiente  ERP c/ 250 GB:  OLTP c/ 500 usuários simultâneos;  Relatórios pesados de fechamento mensal;  Cargas em lote diárias;  DBA + Sysadmin;  Disponibilidade + perda de dados + desempenho  críticos;  Discos: 12 discos SAS 300GB.    
  • 21. Exemplos práticos Caso 3 - Sugestão  RAID 1 + hot spare / 15Krpm:  /boot (100MB);  / (20GB);  /var (20GB);  /postgres/pg_xlog (50GB)  swap (8GB)    
  • 22. Exemplos práticos Caso 3 – Sugestão (continuação)  RAID 10 c/ 4 discos (10Krpm):  /postgres/archive (200GB);  /postgres/backup (400GB);  RAID 4 c/ 4 discos + hot spare / 15Krpm:  /postgres/data (600GB);    
  • 23. Exemplos práticos Caso 4 – Ambiente  OLAP + Data Mining (1TB)  Cargas pesadas à noite;  Poucos usuários realizando consultas complexas;  Desempenho crítico;  DBA e Sysadmin c/ nível sênior;  3 discos locais: SAS 300GB 10Krpm  12 discos em storage: FC 146GB 15Krpm   6 discos em storage: SAS 300GB 10Krpm    
  • 24. Exemplos práticos Caso 4 – Sugestão  RAID 1 + Hot Spare ­ local  /boot (100MB)  / (50GB)   /var (50GB)  /postgresql/pg_xlog (200GB) – EXT3 c/ noatime  swap (16GB)    
  • 25. Exemplos práticos Caso 4 – Sugestão (continuação)  RAID 5 c/ 5 discos SAS 10Krpm + hot spare:  /postgresql/data/old (800GB) – XFS  /postgresql/archive (400GB) – EXT3 c/ noatime +  writeback  RAID 0 c/ 3 discos FC 15Krpm ­ Storage:  /postgresql/data/temp (226GB) – EXT2  RAID 10 c/ 8 discos FC15Krpm + hot spare:  /postgresql/data/new (568 GB) – XFS c/ noatime    
  • 26. Obrigado!  Perguntas, Sugestões e cervejas!  Contatos:  telles@timbira.com.br  gtalk/msn/mail: fabio.telles@gmail.com  Skype: fabio_telles  http://www.midstorm.org.br