Alta concorrência com PostgreSQL



Documentos relacionados
*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

LOGs e ALERTAS de DESEMPENHO

NetEye Guia de Instalação

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

SGBD. Funções Básicas de um SGBD

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Desmistificando Replicação no PostgreSQL

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

SolarWinds Kiwi Syslog Server

Configuração do Linux Educacional 5 para melhor uso do MonitorINFO-V4

CONTENÇÕES NO SGBD MICROSOFT SQL SERVER 2008 R2

Processo de Instalação Limpa do Windows 8.1 em Computadores Philco

Instalando e Atualizando a Solução Arquivos de Instalação Instalação do Servidor de Aplicação Instalação JDK...

2 de maio de Remote Scan

TUTORIAL INSTALAÇÃO DA ROTINA 2075 NO LINUX

Manual do usuário. Mobile Auto Download

Arquivos de Instalação Instalação JDK Instalação Apache Tomcat Configurando Tomcat... 9

V O C Ê N O C O N T R O L E.

Aula 2 Arquitetura Oracle

Softwares Aplicativos Banco de Dados

Curso PostgreSQL - Treinamento PostgreSQL - Fundamental

1. Introdução. 2. Funcionamento básico dos componentes do Neteye

Título da Apresentação

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

Manual de Instalação ProJuris8

PROPOSTA COMERCIAL CLOUD SERVER

NOTA: POR FAVOR, NÃO TENTE INSTALAR O SOFTWARE ANTES DE LER ESTE DOCUMENTO.

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Tudo que você queria saber sobre o uso de discos em servidores PostgreSQL e tinha vergonha de perguntar. por Fábio Telles Rodriguez

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

Fundamentos de Banco de Dados

Fox Gerenciador de Sistemas

Treinamento PostgreSQL - Aula 09

Online Help StruxureWare Data Center Expert

EEP SENAC PELOTAS CENTRO HISTÓRICO PRONATEC/TURMA 2 PROFESSOR: NATANIEL VIEIRA DISCIPLINA: SEGURANÇA DE REDES AVIRA ANTIVIRUS

Módulos de Multiprocessamento em um servidor Web

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Manual de Instalação PIMSConnector em Windows

ANTES DE PROSSEGUIR GOSTARÍAMOS QUE VOCÊ CONHECESSE NOSSOS NOVOS CLIENTES E NOSSA NOVA TECNOLOGIA COM RECONHECIMENTO DE VOZ.

Guia de Instalação Rápida. Guia de Instalação Rápida. Adaptador PCI-E Sem Fio N300/N150. Adaptador PCI-E Sem Fio N300/N150

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

MANUAL DE CONFIGURAÇÃO DO BACKUP

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde

UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

Manual Operacional Datasync Retail

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

ROTEIRO DE INSTALAÇÃO

ESPECIFICAÇÕES TÉCNICAS e OPERACIONAIS. BioGer Server e BioGer Client

Como funciona a Solução NFC-e ifox. Iniciar a utilização da NFC-e

Capture Pro Software. Guia de referência. A-61640_pt-br

TACTIUM ecrm Guia de Funcionalidades

BI: Um estudo de Oracle MÉLODY BALLOUARD (MAMB)

UNIVERSIDADE FEDERAL DE PELOTAS

ANTES DE PROSSEGUIR GOSTARÍAMOS QUE VOCÊ CONHECESSE NOSSOS NOVOS CLIENTES E NOSSA NOVA TECNOLOGIA COM RECONHECIMENTO DE VOZ.

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Manual de Instalação PIMSConnector em Linux

Solicitação de Manutenção de Veículo. Manual SRM

Auditando o Acesso ao Sistema de Arquivos no Windows 2008 Server R2

O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa?

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Procedimentos para Instalação do Sisloc

Introdução. O Windows Server 2003 está dividido em quatro versões:

Desenvolvendo Websites com PHP

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

NOVO MODELO DE ATUALIZAÇÃO FOCCO Atualização automática com o FoccoUPDATE

Guia de utilização - Novodrive

Comparativo de desempenho do Pervasive PSQL v11

Atualização de computadores CCE para Windows 8.1 ATUALIZAÇÃO LIMPA

Expandindo um banco de dados SQL de ICM

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

Uc-Redes Técnico em Informática André Luiz Silva de Moraes


Problemas de Performance Rio. Parte 1 - Agosto/2013

TREINAMENTO. Apresentação. Objetivos. Dados Principais. Tecnologia Abordada Oracle Databese 11g

XDOC. Solução otimizada para armazenamento e recuperação de documentos

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

Respostas da Lista de Exercícios do Módulo 1: Fundamentos dos SI. Resposta do Exercício 1

Gerenciador de Mudanças automatizadas

Gerenciamento de memória virtual no Kernel Linux conceitos básicos

Manual Instalação, Configuração e Atualização FullCopyConvert Data FullCopyConvertService

Outlook XML Reader Versão Manual de Instalação e Demonstração UNE Tecnologia

Cookies. Krishna Tateneni Jost Schenck Tradução: Lisiane Sztoltz

Como liberar acesso ao Skype utilizando Proxy Socks.

Procedimentos para Reinstalação do Sisloc

Data Transformation Services (DTS) por Anderson Ferreira Souza

Manual de Instalação do Servidor Orion Phoenix Versão Novembro/2010

Fundamentos de Sistemas de Informação Hardware: Dispositivos de Entrada, Processamento e Saída

Laboratório de Redes de Computadores e Sistemas Operacionais

MANUAL DO ANIMAIL Terti Software

Gerenciamento de Transações

Transcrição:

Alta concorrência com PostgreSQL ou Fazendo uma manada de elefantes passar debaixo da porta Fábio Telles Rodriguez Timbira - A empresa brasileira de PostgreSQL 09 de novembro de 2012

Agenda Sobre o que estamos falando? Possíveis soluções Considerações finais Perguntas

Sobre esta apresentação esta apresentação está disponível em: http://www.timbira.com.br/material esta apresentação está sob licença Creative Commons Atribuição 3.0 Brasil: http://creativecommons.org/licenses/by/3.0/br

Sobre o que estamos falando? Figura: Metrô - SP / Estação Sé

Sobre o que estamos falando? Aplicações OLTP com alta concorrência: Milhares de conexões simultâneas; Vários usuários realizando gravações nas mesmas tabelas; Várias usuários consultando informações que acabaram de ser gravadas; Cada usuário deve ser atendido em tempo hábil; Crescimento de vários GBs por dia.

Tratamento Multi Documentos - TMD Tratamento de imagens descentralizado em ambiente bancario: Crescimento de 5GB a 20GB por dia; Até 2 milhões documentos tratados por dia; Mais de 5 mil agências com 10 mil estações de captura. Pool de 25 servidores com complementação automática; Mais de 500 estações de complementação manual; Centenas de regras de negócio aplicadas para diversos tipos de documento em diversas etapas (workflow); Troca de informações em lote com Mainframe; Troca de informações em XML com outros sistemas legados; Exportação de arquivos de saída. TUDO AO MESMO TEMPO, com janela de 6 horas de processamento.

Gargalo de CPU Figura: Trem em Mulan - Paquistão

Gargalo de CPU SO não trabalha bem com mais de 700 processos simultâneos; O custo para gerenciar a fila de espera só aumenta o problema; Cada conexão precisa de memória, keep alive pela rede e semaforização; O número de conexões ativas no SGDB deve ficar na órdem de 2 para cada core; Aplicações server podem utilizar conexões persistentes...... as aplicações client NÃO;

Lock Inferno Figura: Cruzamento das Avenidas Faria Lima com a Juscelino Kubitschek

Problemas com a modelagem Modelagem de dados ruim pode levar anos para revelar um resultado ruim. Leva horas para mostrar a catástrofe em alta concorrência;

Agenda Sobre o que estamos falando? Possíveis soluções Considerações finais Perguntas

Controlando o número de conexões PGBouncer: 1 Pool de conexões para transações no modo transaction; 1 Pool de conexões para consultas no modo statement; Aumento na eficiencia do processador, fila de espera das transações diminui; PGmemcache Replicas de dados do PostgreSQL para SQLite nas estações utiliza memcache; Um gatilho nas tabelas replicadas atualiza o número de versão do cache; Ao solicitar uma réplica, a estação compara a sua versão da tabela com a versão do cache; Poderia ser implementado com Listem / Notify

Locks Só abra uma transação, se realmente precisar; Saiba quando abrir e quando fechar uma transação; Não se perca na aplicação; Se abrir, feche logo. Não espere eventos for a do SGDB para fechar sua transação; Não utilize SELECT... FOR UPDATE; Não utilize LOCKs expĺıcitos. Tire proveito do MVCC; DEAD LOCK são problemas de lógica da aplicação. Altere a lógica dela;

Ajustes de Hardware CPU rápida é menos importante que ter muitos cores; Muita memória RAM para manter um númer alto de conexões; Use cache de disco para suportar um grande volume de gravações concorrentes; Discos rápidos e separados para o pg xlog é imprecindível;

Ajustes no SO (Linux) /etc/sysctl.conf kernel.shmmax (25% da RAM disponível) Semáforos (para suportar um número alto de conexões) file-max overcommit /etc/security/limits.conf nproc nofile /etc/fstab noatime para os dados noatime + writeback para o pg xlog

Ajustes no PostgreSQL max connections O menor número viável; Faça o possível para diminuir este valor para menos de 500; pg hba.conf Limite ao máximo a origem das suas conexões; Limite os usuários e bases que eles vão se conectar; Rejeite usuários, grupos e redes desconhecidos;

Ajustes no PostgreSQL shared buffers < 8GB ou 20% da RAM disponível (o que for maior); autovacuum em tabelas que sofrem cargas pesadas em lote, desligue; Memória por processo temp buffer < 16MB work mem < 16MB Ajuste individualmente conexões específicas; checkpoint segments Aumente para pelo menos 16 Limite de acordo com tempo que o recover pode levar

Acerte a sua modelagem Use o tipo de dados certo para a tarefa certa; Use chaves naturais; Não use campos flex; Para dados não estruturados, você tem hstore, vetores e tipos compostos; Use índices e gatilhos com sabedoria (teste e monitore o seu uso); Pilhas e filas não devem ficar no seu SGDB;

Escrevendo SQL Jamais utilize uma função em PL para algo que um SQL puro consegue fazer; COMMIT a cada X alterações. X > 100 e < 100K; Se uma consulta retorna mais de 100 registros, reveja a regra de negócio; INSERT < INSERT multiplo < PREPARE e EXECUTE < COPY < INSERT... SELECT Aprenda a usar subconsultas e window functions e Common Table Expression; Relatórios pesados devem utilizar visões materializadas.

Agenda Sobre o que estamos falando? Possíveis soluções Considerações finais Perguntas

Testes Teste as funcionalidades Teste com volumes de dados o mais realistas possível Teste com carga de concorrência o mais realista possível

Rollout Como testes com volume de dados e concorrência nunca são bons... Faça o deploy de poucas funcionalidades por vêz; Adicione novos usuários aos poucos; Esteja preparado para o caos durante o rollout; Não tente matar mais de um leão por dia; O rollout de uma única parte do sistema pode levar meses;

Monitoramento Monitore o SO, o PostgreSQL, a aplicação; Gere logs que mostrem a operação e a duração de cada ação; Gere logs em formatos que possam ser manipulados por ferramentas automatizadas; Aprenda a configurar o log do PostgreSQL e o PGBadger; Faça coletas periódicas e armazene tudo em um local central; Crie baselines e compare sempre com elas;

Para os DBAs... Durma bem antes de um novo deploy. Tire uns dias de folga; Não deixe de tomar cerveja com os amigos... Pratique exercícios físicos regularmente!!!

Perguntas? Fábio Telles Rodriguez telles@timbira.com.br http://www.timbira.com.br