N style="mso-spacerun: yes">
Clique aqui para ler todos os artigos desta edição
Otimizando um servidor Linux para banco de dados – Parte 3
por Carlos Eduardo Smanioto
Leitura obrigatória: SQL Magazine 12, Otimizando um servidor Linux para banco de dados – Parte I
Leitura obrigatória: SQL Magazine 17, Otimizando um servidor Linux para banco de dados – Parte II
Neste último artigo da série, iremos partir para o tuning do PostgreSQL. Fico feliz em ver a série sobre otimização de servidor chegando ao final, é muito difícil alguém publicar uma série de artigos neste nível porque a somatória das partes fornecem ao leitor um conhecimento de altíssimo nível sobre as características do Linux. Aliado a isso, nesta parte iremos focar mais os nossos olhos no PostgreSQL pois o objetivo das outras partes eram apenas um preparatório para poder alcançar o grande objetivo: “Otimizar um banco de dados PostgreSQL.”
Uma breve introdução
Cada vez mais empresa utilizam o PostgreSQL como solução de banco de dados. Mas infelizmente muitas empresas enganadas por “instaladores Next, Next, Finish” do PostgreSQL acreditam que só isso é o suficiente para obter um excelente resultado adotando o PostgreSQL. Como qualquer outro SGDB de grande porte, o o PostgreSQL necessita de alguns ajustes que levam em consideração o hardware e o sistema operacional que irá executar, costumo compará-lo a um Fórmula 1: para cada pista e tempo (clima) o carro necessita ser ajustado para poder oferecer o máximo de performance na pista. Se os ajustes (tuning) não forem realizados ele irá correr, pois foi feito para isso, porém além de haver a possibilidade de acidentes (perder dados, etc), o carro (PostgreSQL) pode ser mais lento que os demais (outros SGBDs) que correm na mesma pista (hardware) e no mesmo clima (Linux). Creio que com esta pequena comparação é possível visualizar o porquê do tuning no PostgreSQL.
O que de fato devo levar em conta
Para realizar um tuning no PostreSQL é necessário considerar:
· Características do hardware e sistema operacional;
· Quantidades de estações (ou conexões) que ele irá receber;
· Tipo de aplicação que está usando o PostgreSQL;
· Nível de segurança que se quer aplicar;
· Finalidade da base de dados criada no SGDB.
Estes são os itens que costumo levar em conta para saber como irei preparar o tuning. Detalharemos a partir de agora cada um deles.
Características do hardware e sistema operacional
Como nós vimos nos artigos anteriores, alguns componentes do hardware pode fazer toda a diferença. Logicamente, uma máquina com 64Mb de RAM terá mais problemas do que uma de 1Gb de RAM, porém o que digo é que algum item terá que ser ajustado no kernel Linux e/ou no PostgreSQL:
· Memória RAM;
· Tipo de processador;
· Tipo de disco;
· Tipo de sistema de arquivos;
· Como foi particionado;
· Tamanho de cada partição;
· Tipo de dispositivo para backup;
· Características de segurança e topologia da rede.
Essas são algumas das características que devem ser levadas
Muitas empresas já compram o melhor hardware do mercado esperando resultados, mas nem sempre isso é uma verdade. Por isso é sempre bom o DBA saber das tecnologias vigentes no mercado em nível de hardware para que não indique primeiramente o mais caro, mas saiba indicar o preciso. Precisão é a palavra chave no tuning. A Tabela 1 mostra como montar uma excelente máquina com hardwares compatíveis com Linux.
Item |
Modelo |
Especificação |
Estimado R$ |
Memória |
512Mb, barramento 333Mhz |
460,00 | |
HD |
Western Digital 36Gb WD Raptor WD360 SATA150 |
HD SATA, 36Gb, 10.000 RPMs com 8Mb de cache |
790,00 |
HD(IDE) |
Maxtor 120Gb PLUS 9 |
8mb cache 7200rpm Ata/133 (no caso de um IDE) (ler Nota 1) |
540,00 |
Placa mãe |
Asus A7N8X-E Deluxe |
... |