Escolhendo hardware para o seu servidor PostgreSQL

Introdução

Agora que já falamos sobre cenários e seus tipos de cargas de dados, chegou o momento de sermos mais específicos e falarmos sobre hardware. A escolha do hardware correto é crucial para a performance e a segurança de um servidor de banco de dados. 
Neste artigo, abordaremos os aspectos mais importantes do hardware para bancos de dados, considerando diferentes cenários de uso: aplicações web, OLTP e Data Warehouse.
Um ponto importante antes de começar a fuçar em diferentes possibilidades é, ao falar de bancos de dados em produção, ter uma postura um pouco mais conservadora. Ninguém gosta de arriscar demais quando falamos em bancos de dados. O prejuízo que se tem no caso de um desastre é alto demais. Então, lembre-se disso ao fazer as suas escolhas. Em ambientes de produção, evite a última moda, o lançamento mais recente, a tecnologia disruptiva, até que ela tenha sido testada e aprovada amplamente pelo mercado. Escolha componentes conhecidos, de fornecedores confiáveis e com robustez comprovada, sempre.

Roteiro:

  • Diferenças entre ambientes (teste, homologação e produção)
  • CPU
  • Memória RAM
  • Disco & Cia
  • Rede
  • Aspectos importantes de hardware para banco de dados
  • Hardware para cenários específicos

Diferenças entre ambientes (testes, homologação e produção)

A escolha do hardware para servidores de bancos de dados varia significativamente de acordo com o ambiente em que ele vai rodar. Apesar de cada equipe usar um nome diferente, geralmente os ambientes são resumidos em três categorias:

  • Testes ou desenvolvimento: algumas pessoas desenvolvem no seu próprio desktop ou possuem um servidor menor para testes e desenvolvimento. Geralmente, utilizam um hardware bem menor com menos poder de fogo e sem muitos requisitos de segurança. Aqui, o mais importante é a flexibilidade de subir novos ambientes para novas tarefas. É muito comum precisar subir um ambiente de teste novo isolado para desenvolver uma funcionalidade específica. O uso de contêineres também é bem comum;
  • Homologação ou QA: aqui os requisitos de desempenho geralmente são importantes. É comum utilizar uma cópia recente da base de produção, com o mesmo volume de dados, na hora de homologar uma nova funcionalidade ou simular um erro encontrado por um usuário. Nesse caso, não queremos apenas saber se alguma coisa funciona ou não, queremos saber se o desempenho é satisfatório, medir a velocidade, fazer testes com carga mais próxima possível da realidade, para evitar sustos na hora de colocar em produção. Por outro lado, os requisitos de segurança do hardware também não são importantes, de forma que não há uma preocupação com alta disponibilidade do hardware, por exemplo;
  • Produção: aqui é o nosso ponto focal do artigo. Precisamos tanto de desempenho como de segurança. Aí é que entra o problema da tríade: custo, segurança e desempenho. Você não consegue ter os três ao mesmo tempo, precisa escolher apenas dois! Focaremos boa parte do nosso artigo especificamente nesse ambiente, que é o mais crítico de todos e onde os custos chamam a atenção. Portanto, é importante saber onde investir o seu limitado orçamento para tirar o melhor proveito possível dele. 

CPU

O primeiro ponto em que se pensa quando vamos adquirir um servidor (seja on premise ou na nuvem) para rodar um banco de dados em produção é a CPU. Talvez esse não seja o item mais importante de todos (vamos falar sobre isso adiante), mas certamente costuma ser o primeiro a ser lembrado.

Desempenho 

Do ponto de vista do desempenho, há três pontos importantes para se observar:

  • Velocidade do clock da CPU. Quanto maior a velocidade da CPU, mais rapidamente ela vai processar as solicitações dos usuários do banco de dados. Isso é especialmente importante em ambientes com cálculos complexos como IA, Data Science e BI;
  • Número de processadores/cores/threads. Se você está num ambiente OLTP ou Web, entenda que cada requisição de usuário vai ocupar uma CPU. Se você possuir várias dezenas de requisições ao mesmo tempo, vai precisar de várias CPUs para processá-las rapidamente. Se o número de requisições for maior que a quantidade de CPUs disponíveis, as requisições vão ficar numa fila de espera e a aplicação terá de ficar aguardando. Num ambiente de Data Science ou BI, o PostgreSQL também poderá quebrar consultas complexas e pesadas em pedaços menores e utilizar uma CPU para cada um desses pedaços, paralisando a solicitação. Dessa forma, possuir mais CPUs irá agilizar solicitações complexas e pesadas através desse tipo de recurso;
  • Quantidade de cache L1, L2 e L3. Memória é sempre um bom investimento. A memória interna da CPU é mais rápida que a memória RAM externa que você mesmo instala no servidor. Bancos de dados costumam trabalhar com grandes volumes de dados, e geralmente quanto mais RAM, mais rápido você consegue processar as informações. Operações internas de consultas, como ordenações, hash joins etc., se beneficiam muito de um bom cache na CPU.

Segurança

Do ponto de vista da segurança, o mais importante é evitar processadores utilizados em desktops. Servidores de produção quase sempre operam em regime 24/7, não são desligados nunca. Então, processadores desenvolvidos para servidores têm uma vida útil maior e são feitos para rodar com carga ininterruptamente. Se você utilizar um processador de desktop para rodar no seu servidor 24/7, provavelmente a vida útil dele será menor do que a esperada. A mesma questão se aplica a outros componentes, como memória, discos etc.

CPUs para servidores de produção no mercado hoje

Existem três grandes fornecedores de CPU para servidores no mercado:

  • A Intel, fornecedora mais tradicional de CPUs. Esqueça as linhas i3, i5, i7 e i9 da Intel. Em servidores, ela oferece a linha Xeon, que domina o mercado de servidores há uns bons anos. Esses servidores são considerados robustos e rápidos, possuem versões com diferentes velocidades de clock, quantidades de cache e cores. No momento em que este artigo foi escrito, a linha Xeon está na sua 6a geração e possui processadores com até 144 cores, 3.2 GHz de frequência e 108 MB de cache (vale lembrar que existem vários tipos de cache dentro de uma CPU);
  • A AMD é a segunda fornecedora mais conhecida de CPUs, sendo mais popular no mercado de desktops, mas, de uns anos para cá, ela também tem se mostrado competitiva no segmento de servidores. Assim como a Intel, a AMD possui a linha Ryzen e Athlon para desktops, mas no segmento de servidores, vamos olhar para a linha EPYC. Os processadores EPYC, no momento em que este artigo foi escrito, estão na sua 4ª geração, e a Série 9004 possui hoje modelos com até 128 cores, 4.4 GHz de frequência e até 1 GB de cache L3;
  • A ARM é uma fabricante líder em processadores para dispositivos embarcados, mas que passou a ser muito utilizada na AWS, devido ao seu baixo custo e baixo consumo de energia, o que pesa consideravelmente quando pensamos num datacenter com milhares de servidores. A linha Neoverse N1 e N2 é dedicada a servidores com até 128 cores.

Memória RAM

Para manipular os dados do seu banco de dados, as informações contidas nas suas tabelas precisam estar na memória RAM antes de serem processadas pela CPU. Num cenário ideal, seria possível guardar todos os dados de todas as tabelas do seu banco de dados na RAM. Assim, todas as operações seriam muito mais rápidas. Infelizmente, isso não é possível na maioria das vezes. Hoje em dia, consideramos que um banco de dados com alguns TBs é de tamanho médio, e um servidor com 1 TB de RAM, embora seja possível e existam modelos assim no mercado, possui um custo nada acessível. Dessa forma, investir em memória costuma ser um ótimo benefício, pois quanto mais o seu banco de dados couber na RAM, maior a chance de você não precisar acessar o disco, que é muito mais lento.

DDR DIMM

A RAM é vendida em módulos com chips colados em ambos os lados de uma pequena placa, chamada de DIMM (Dual In-line Memory Module). Existem vários modelos de memória RAM no mercado com diferentes características. A primeira e mais comum é a velocidade delas. No momento em que este artigo foi escrito, as memórias costumam utilizar o padrão DDR (Double Data Rate), que hoje estão na sua 5a geração, conhecidas como DDR5, lançadas em 2023 com velocidades entre 4000 MT/s e 8000 MT/s. O padrão DDR4, lançado em 2014, ainda se encontra no mercado e tem velocidades 1600 MT/s e 3200 MT/s. O padrão DDR6 tem lançamento previsto para 2026.

UDIMM, RDIMM e LRDIMM

Existem também os padrões UDIMM, RDIMM e LRDIMM, que se diferenciam pelos mecanismos internos de buffer.

  • Memórias UDIMM não possuem buffer (Unbuffered DIMM) e são mais baratas, mas consomem mais energia e são mais instáveis. Além disso, não é possível utilizar grandes quantidades de RAM UDIMM na mesma máquina. Logo, as memórias UDIMM são mais baratas e mais comuns de se encontrar em desktops. Não utilizamos memórias UDIMM em servidores de produção;
  • Memórias RDIMM possuem buffer (Registred DIMM), são mais estáveis e podem utilizar vários módulos de memória na mesma máquina com velocidades maiores também. São as mais comuns de se encontrar em servidores. É esse tipo de memória que você deve utilizar no seu ambiente de produção nos dias de hoje;
  • Memórias LRDIMM (Load Reduced DIMM) e outras versões proprietárias de fabricantes específicos prometem melhorias e tecnologias específicas para melhorar o desempenho ou o consumo de energia. 

ECC

Memórias em servidores de bancos de dados devem sempre utilizar o padrão ECC (Error Checking and Correcting). Memórias sem ECC têm lá seus mecanismos de detecção de erros, mas não são tão eficientes quanto as que usam ECC. Esse é o padrão mais confiável hoje, utilizado e aprovado pelo mercado há um bom tempo. Não arrisque! Falhas de memória sem ECC podem levar a falhas catastróficas no seu banco de dados.

Discos ou armazenamento não volátil

Os discos são dispositivos de armazenamento fundamentais para servidores de banco de dados, responsáveis por guardar e acessar dados de forma eficiente. Eles variam em tipo, desempenho e capacidade, influenciando diretamente a performance do banco de dados. Os discos são provavelmente o componente que você vai escolher com mais cuidado ao montar um servidor de banco de dados. Possivelmente, será a parte mais cara dele também. O problema fundamental é que, normalmente, as pessoas pensam em discos apenas pela sua capacidade. Aqui temos que pensar não apenas na capacidade (e espaço para acomodar o banco de dados, espaço para ele crescer nos próximos anos, backups etc.), mas também no desempenho, na segurança etc. Bancos de dados exigem muito dos discos, gravam constantemente, lêem o tempo todo e, se qualquer coisa der errado, o prejuízo é ainda maior do que se qualquer outro componente do servidor falhasse, pois pode envolver, além da indisponibilidade do banco de dados, a perda de dados. 

Ao pensar na “persistência dos dados”, temos que pensar em todo o conjunto envolvido no processo: 

  • Storages externos
  • Controladoras de discos
  • RAID
  • Discos
  • Particionamento de discos

Storages

Em vez de armazenar os dados do seu banco dentro do servidor, você pode ter discos físicos locais dentro do servidor apenas para o sistema operacional e armazenar todos os dados num servidor externo dedicado apenas para lidar com isso, conhecido como storage. Existem diversos tipos no mercado. Os mais caros e poderosos utilizam uma rede separada, a SAN (Storage Area Network), com uma tecnologia específica, como a Fibre Channel ou a InfiniBand, ou o protocolo TCP/IP com o iSCSI. Nesse caso, você terá que utilizar duas placas adaptadoras para se comunicar com essa rede, conhecidas como HBA (Host Bus Adapter). Então existem duas possibilidades: é possível se conectar diretamente no storage, o que chamamos de DAS (Direct Attached Storage), ou numa SAN, utilizando switches e cabos especiais para conectar todos os servidores em um ou mais storages. Toda essa rede utiliza uma arquitetura chamada fabric, onde todos os componentes da rede têm redundância: HBAs, cabos, switches.
Outra opção mais simples, mais barata e bem menos robusta, segura e veloz é utilizar um NAS (Network Attached Storage), que é um storage plugado numa rede TCP/IP normal e que utiliza protocolos como o NFS (Network File System) no Linux. O NAS é uma ótima opção para armazenamento de grandes volumes de dados que não precisam de muita confiabilidade e desempenho. Esse não é o caso dos nossos bancos de dados em produção. Não o utilize em ambientes críticos.

Storages são componentes caros e complexos. Podem ter o tamanho de um simples servidor 4U num rack ou podem ocupar 2, 4, 8 racks full size inteiros. Quando você compra um brinquedinho desses, faz um contrato de suporte com o seu fornecedor por três a cinco anos. Seu equipamento será monitorado remotamente pelo fornecedor. Quando um disco falhar, ele irá bater na sua porta no dia seguinte com um técnico trazendo um disco novo debaixo do braço e vai trocar esse disco sem paralisar a sua operação. Sim, tudo utilizando hot swap e, claro, a tecnologia RAID, que vamos comentar a seguir. Quando acabar o período de contrato do suporte, você vai comprar um novo storage e substituir completamente o antigo, colocando-o para fazer coisas menos nobres, como no ambiente de homologação. Nenhum fornecedor de storage renova o contrato de suporte depois de vencido esse prazo de três a cinco anos. Entende como funciona? Além disso, um storage tem várias vantagens, como oferecer uma quantidade absurda de cache de gravação e leitura, baterias internas e redundantes que garantem o seu funcionamento em caso de falha de energia elétrica, controladoras robustas, capacidade de acomodar centenas de discos físicos e agregá-los de diferentes formas e, por fim, software caríssimo que oferece formas facilitadas de monitoramento, backup etc.

RAID

Técnica que combina múltiplos discos físicos para aumentar a performance e/ou confiabilidade. Diferentes níveis de RAID (como RAID 0, 1, 5, 10) oferecem variações entre tolerância a falhas, velocidade e capacidade de armazenamento. Aqui está um resumo sobre os mais populares:

  • JBOD (Just a Bunch of Disks): é o que existia antes do RAID. Você colocava vários discos no servidor, e cada um aparecia com pelo menos uma partição separada. Você tinha que distribuir os dados em tablespaces mapeados para cada disco e sair distribuindo índices e tabelas em tablespaces distintos. Um verdadeiro show de horror e um trabalho interminável. Ninguém mais usa isso, ufa!;
  • RAID 0: aumenta o desempenho ao dividir os dados entre vários discos (conhecido como striping), mas não oferece proteção contra falhas. Se um disco falhar, todos os dados são perdidos. Ninguém usa RAID 0 no nível de hardware em produção. Não faça isso, sério! O risco é enorme. No entanto, na nuvem, é comum utilizar RAID 0 por software, uma vez que já se supõe que exista algum tipo de RAID (que ninguém sabe direito qual é) no hardware do fornecedor. Veja que estamos falando de um cenário bem específico, ok?;
  • RAID 1: duplica os dados em dois discos (espelhamento). Se um disco falhar, o outro tem uma cópia idêntica dos dados, oferecendo alta segurança, mas sem aumento de desempenho em leitura. Utilizamos o RAID 1 normalmente quando temos apenas dois discos idênticos. Em outros casos, utilizamos o RAID 10;
  • RAID 5: distribui os dados e a paridade (informação usada para recuperar dados) entre três ou mais discos. Oferece um certo equilíbrio entre desempenho de leitura, capacidade e segurança. No entanto, para gravação, o RAID 5 tem uma perda considerável de performance, não sendo recomendado para ambientes OLTP. A segurança do RAID 5 também é muito questionável, pois quando um dos discos falha, ao substituir por um novo, é comum que um segundo disco falhe junto. No entanto, se você tiver que lidar com um volume muito grande de dados estáticos e/ou históricos (em que você faz muita leitura e pouca gravação), um bom RAID 5 pode ser uma opção como um segundo RAID, separando os dados mais críticos em um RAID 1 ou RAID 10, por exemplo;
  • RAID 6: é como o RAID 5, porém requer pelo menos quatro discos, já que os dados são gravados em dois deles. Suporta falha em dois discos sem perder dados. Apesar de ser um pouco mais seguro que o RAID 5, possui os mesmos problemas que o RAID 5 em termos de desempenho;
  • RAID 10 ou RAID 1 + 0: é uma junção do RAID 0 com o RAID 1. Assim você tem a segurança do espelhamento do RAID 1 com a velocidade da distribuição de dados do RAID 0. Você precisa de, no mínimo, quatro discos para fazer um RAID 10 e deve aumentar o número de discos sempre em números pares: 6, 8, 10, 12 etc. 

Se você tem um servidor muito pequeno, comece com um RAID 1. Se tem um servidor maior, pense no RAID 10. Se tem um volume muito grande de dados, pense numa combinação entre RAID 1 ou 10 com um RAID 5 ou 6.

Importante frisar que a técnica RAID não substitui backups de rotina, pois não protege contra todos os tipos de falha, como erros humanos, e não oferece histórico de versões.

Controladoras de disco

Trata-se de hardware dedicado que gerencia a comunicação entre o servidor e os discos. Controladoras RAID são específicas para implementar diferentes níveis de RAID, garantindo melhor desempenho e segurança dos dados. Se você utiliza um storage, ele já deve ter uma excelente controladora de discos embutida, então não precisa se preocupar com isso. Se está na nuvem, menos ainda. Mas se você vai guardar todos os seus discos físicos dentro do seu servidor… precisa, sim, pensar na controladora que vai utilizar. Todo servidor, em geral, tem uma controladora de discos embutida na placa-mãe. Essa controladora embutida é limitada em número de discos suportados, possibilidade de fazer RAID, cache e uso de bateria embutida.
Cada controladora suporta uma interface específica de discos. Desktops utilizavam discos SATA (Serial ATA), e servidores utilizavam o SCSI, Fibre Channel ou Serial Attached SCSI, até que os discos mecânicos passaram a dar lugar aos discos de estado sólido, os SSDs. Hoje em dia, quase ninguém usa mais discos mecânicos, e tudo isso virou de cabeça para baixo. Existem N formatos de discos SSDs e soluções que foram nascendo e morrendo com o tempo. Vale lembrar que os discos SSDs em servidores são bem diferentes dos discos utilizados em desktops. Servidores de grande porte utilizam os discos NVMe (Non Volatile Memory Express), que se conectam através do barramento PCI Express e substituem a arquitetura utilizada em discos mecânicos, a AHCI. 

Atualmente, boa parte das soluções se concentram em placas PCI Express com várias memórias SSD agrupadas e algumas capacidades embutidas de RAID e cache. Processadores para servidores de topo de linha também possuem controladoras embutidas NVMe com capacidade de gerenciar dezenas de discos SSDs. Hoje em dia, se você não vai utilizar um storage externo e quer utilizar vários discos SSDs, é melhor entrar em contato com o seu fornecedor de servidores e conversar com ele sobre as soluções disponíveis. 

Discos mecânicos

São um tanto ultrapassados, mas ainda utilizados em lugares onde se precisa de muito volume, pouco desempenho e baixo custo. Esse não costuma ser o lugar em que são utilizados bancos de dados. Apenas evite!

Discos SSD

Já faz um tempinho (2008) quando cantamos a bola de que os SSDs iriam substituir os discos magnéticos mesmo em servidores de bancos de dados; 15 anos depois, eles viraram padrão de mercado.

É um termo amplo que abrange qualquer dispositivo de armazenamento que tenha uma presença física tangível, incluindo discos magnéticos (HDDs), discos de estado sólido (SSDs), discos ópticos (como CDs e DVDs) e outros tipos de mídia de armazenamento. O termo “disco físico” é frequentemente usado para diferenciar esses dispositivos de discos virtuais ou na nuvem, que não têm uma presença física direta acessível ao usuário.

Discos magnéticos

É um tipo específico de tecnologia de armazenamento, em que os dados são gravados em discos revestidos com material magnético. O HDD (Hard Disk Drive) é o exemplo mais comum de disco magnético. Esses discos são conhecidos por sua capacidade de armazenar grandes volumes de dados a um custo relativamente baixo, mas têm desempenho de leitura e escrita mais lento em comparação com outras tecnologias, como os SSDs.

Discos SSD

Discos SSD definitivamente não são todos iguais. Uma enorme variedade de opções e formatos estão disponíveis no mercado. Temos três questões para se avaliar sobre discos: capacidade, desempenho e segurança. Capacidade é a parte mais simples. Diz respeito ao volume de dados que ele é capaz de armazenar. Nenhum mistério até aí. Velocidade já é um negócio mais manhoso, pois tem várias métricas diferentes. A primeira é a velocidade de transferência, quantos MB/s você consegue transferir. Mas não é tão simples. Essa capacidade muda se o acesso for sequencial ou aleatório. Também muda muito se for para leitura ou escrita. Outro ponto é o número de operações por segundo, medido por IOPS. Esse é um dos principais índices para medir o desempenho de um disco SSD. Novamente, varia bastante quando você está lendo ou gravando. Existem algumas outras métricas, mas essas são as principais.
Quando falamos de segurança em discos SSD, você precisa entender uma coisa importante: cada bit de um disco SSD suporta uma quantidade limitada de ciclos de gravação. Assim, quanto mais vezes você gravar no seu disco, menor será a sua vida útil. Sendo assim, quando você compra um disco SSD, ele vem com uma medida de MTBF (Mean Time Between Failures). Esses testes são feitos em um regime específico de trabalho, então esses números podem mudar muito se você pegar um SSD projetado para ser utilizado em um desktop e rodar um banco de dados 24/7 nele. Ele vai abrir o bico muito antes do esperado e vai deixar você na mão. É por isso que discos SSD para servidores são classificados em três tipos:

  • Read intensive, em que o disco vai suportar operações de leitura 24/7 por um bom tempo, mas não vai durar muito tempo se você fizer muitas operações de gravação. Você deve evitar o uso desse tipo de disco em bancos de dados de produção;
  • Mixed use, que possui um desempenho melhor em gravação e uma durabilidade maior em ambientes com um volume razoável de escritas. Esse tipo é adequado para bancos de dados em produção em casos genéricos, mas pode ser insuficiente para ambientes OLTP, que sofrem muitas operações de gravação;
  • Write intensive: esse é o tipo de disco mais caro e com melhor desempenho e durabilidade em operações de gravação. São ideais para bancos de dados em operação crítica e ambientes OLTP pesados.

Discos na nuvem

Os discos na nuvem referem-se a soluções de armazenamento fornecidas por provedores de serviços em nuvem, como AWS, Azure ou Google Cloud. Esses discos são virtuais, ou seja, não há um hardware físico específico vinculado ao usuário. Eles oferecem alta flexibilidade, escalabilidade e fácil integração com outras soluções na nuvem. Além disso, são frequentemente replicados em diferentes locais geográficos para garantir alta disponibilidade e durabilidade dos dados.
Discos na nuvem são ideais para cenários em que a elasticidade e a gestão simplificada são importantes. Cada fornecedor de nuvem possui diferentes opções de discos ou “block storage” que você pode utilizar em diversas situações. Você vai ter que estudar um pouco sobre cada um e escolher o que melhor lhe atende de acordo com o seu ambiente, mas dificilmente vai saber que tipo de hardware está sendo utilizado embaixo do capô.

Aspectos importantes de hardware para bancos de dados

Para garantir a eficiência e a performance de um banco de dados, é essencial considerar os seguintes componentes de hardware:

  • CPU (Processador)
    • Número de núcleos: mais núcleos permitem processar mais transações simultaneamente;
    • Frequência: processadores com alta frequência são melhores para tarefas que requerem alto desempenho por núcleo.
  • Memória RAM
    • Quantidade: deve ser suficiente para manter os dados frequentemente acessados na memória, reduzindo a necessidade de acesso ao disco;
    • Velocidade: RAM mais rápida melhora o tempo de resposta das operações.
  • Armazenamento
  • SSDs: oferecem alta velocidade de leitura e escrita, essencial para a performance do banco de dados;
  • IOPS (Operações de Entrada/Saída por Segundo): alta IOPS é crucial para sistemas com alta carga de transações.
  1. Rede
    • Largura de banda: necessária para suportar múltiplos acessos simultâneos;
    • Latência: baixa latência garante respostas rápidas.

Claro que a priorização desses componentes vai variar de acordo com o cenário e o tipo de carga de banco de dados, que exploraremos adiante.

Hardware para cenários específicos

OLTP

  • Processador: você vai precisar de muitos núcleos para dar conta de muitas conexões simultâneas. Processadores rápidos com mais cache também vão ajudar no processamento de transações complexas, típicas de ambientes OLTP;
  • Memória RAM: quanto mais memória melhor, sempre. Quanto mais porcentagem do banco couber na RAM, melhor. Muitas conexões simultâneas também consomem memória para fazer suas operações de consulta, então seja generoso na quantidade de RAM;
  • Armazenamento: discos SSD NVMe Write intensive ou mixed use com RAID 1 ou RAID 10 são as melhores opções. 

Web

  • Processador: ambientes web costumam lidar com uma quantidade absurda de requisições simultâneas. Foque aqui em ter muitas cores;
  • Memória RAM: aqui você com certeza quer cachear a maior parte do seu banco. Mais uma vez seja generoso na quantidade;
  • Armazenamento: aqui você deve ter uma quantidade menor de gravações em geral, discos SSD NVMe com RAID 1, 5 ou 10 do tipo read intensive ou mixed use devem resolver bem.

Data Warehouse / BI / Data Science

  • Processador: você precisa de mais cores para paralelizar as consultas, mas preste mais atenção na velocidade deles, pois esse tipo de carga costuma exigir cálculos mais complexos;
  • Memória RAM: esse tipo de ambiente costuma trabalhar com bases enormes, logo, vai precisar de uma boa quantidade de RAM para acompanhar;
  • Armazenamento: aqui a velocidade de gravação não é tão importante, você pode, às vezes, trabalhar com RAID 5 e discos read intensive ou mixed use. Vale a pena notar a frequência e o volume de cargas periódicas que você faz nesse ambiente para dosar melhor a importância das operações de gravação.

Conclusão

Aqui, apenas pincelamos algumas considerações sobre hardware na hora de montar o seu servidor. É claro que não temos uma fórmula mágica. Cada caso é um caso. Além disso, estamos falando de tecnologias em constante evolução, o que vale hoje pode não valer mais amanhã. Mesmo assim, lembre-se de ser conservador e se preocupe com a qualidade dos componentes, pensando em utilizar um hardware mais seguro, com fontes redundantes, ventoinhas redundantes, nobreaks, geradores de energia e até ar-condicionado redundantes.
Segurança é um tema extenso e complexo, mas começa em decisões simples como a de escolher componentes feitos para aguentar o tipo de carga que você espera, em vez de achar que qualquer desktop um pouco melhor vai dar conta do recado.

Compartilhe

Você pode gostar

Tuning de SO (no Linux)

Introdução Tuning refere-se ao processo de ajustar e otimizar o desempenho de um sistema, software ou aplicação. A otimização do sistema operacional é uma etapa

Tipos de cargas dos bancos de dados

Introdução Cargas de dados referem-se aos diferentes tipos de operações e transações que um banco de dados deve processar. Essas cargas variam conforme o tipo

Catálogo do sistema (pg_catalog)

Introdução O pg_catalog é um schema especial no PostgreSQL que guarda todos os segredos do seu banco de dados. Quer saber como suas tabelas são

Arquivos, diretórios e processos

Introdução No PostgreSQL, a organização de arquivos e diretórios, bem como a gestão de processos, são componentes fundamentais para entender o seu funcionamento. Este artigo

plugins premium WordPress