DBAtlas · Atlas de operações de banco de dados

Decisão: dimensionamento de servidor

O dimensionamento correto parte do perfil da carga (OLTP, data warehouse, misto) e exige encontrar o gargalo real (CPU, I/O ou RAM). Regra de ouro: o conjunto de dados acessado com frequência (working set) deve caber na RAM; meça primeiro, depois escale, e deixe folga para picos de carga. Esta árvore ajuda a identificar a carga e a escolher o recurso e a direção de escala (vertical/horizontal) com base no gargalo.

Qual é o perfil da sua carga?

O dimensionamento começa pela carga, porque cargas OLTP e analíticas exigem perfis de recursos completamente diferentes. Qual é o trabalho predominante do sistema: muitas transações pequenas e rápidas (OLTP), relatórios/analytics com grandes scans e agregações (DWH), ou uma mistura dos dois? Se não tiver certeza, você precisa medir primeiro.

  • OLTP — muitas transações pequenas e curtas (web/aplicação)
  • Analytics / data warehouse (DWH) — grandes scans e agregações
  • Carga mista, ou não tenho certeza
  • Conheço o gargalo; devo escalar vertical ou horizontalmente?

Onde está o gargalo: RAM, I/O ou CPU?

Em OLTP, encontre o gargalo real em vez de adicionar recursos às cegas. Olhe suas métricas: os dados acessados com frequência não cabem na RAM e há muitas leituras de disco (RAM/I/O), a latência/IOPS do disco é insuficiente (I/O), ou os dados já estão em memória, mas a CPU está saturada (CPU)? Escalar o recurso errado desperdiça dinheiro e tempo.

  • Os dados acessados com frequência não cabem na RAM; as leituras de disco são altas
  • Os dados estão em memória, mas a latência/IOPS do disco é insuficiente (muitas gravações)
  • Os dados estão em memória e o disco está bem, mas a CPU está constantemente saturada

Recomendação: meça primeiro, depois dimensione

Comprar hardware com base em palpites quase sempre resulta no tamanho errado. O perfil da carga e o gargalo surgem de métricas reais. Dimensionamento não é palpite, mas uma iteração guiada por medições.

Recomendação: adicione RAM — o working set deve caber na memória

A regra mais crítica de OLTP: os dados e índices acessados com frequência (o working set) devem caber na memória (buffer/cache). Se não couberem, toda consulta vai ao disco, a latência explode e o I/O vira o gargalo. A RAM costuma ser o investimento de maior retorno.

Recomendação: reforce a camada de I/O (IOPS/latência)

Mesmo com os dados em memória, a velocidade do disco é decisiva sob carga com muitas gravações (commit, WAL/redo/binlog, checkpoint). A questão aqui não é capacidade, mas IOPS e latência. A classe de disco errada derruba o sistema apesar de CPU/RAM rápidas.

Recomendação: resolva o gargalo de CPU (consultas primeiro, depois núcleos)

Se a CPU está saturada enquanto os dados estão em memória e o disco está bem, a causa raiz geralmente são consultas ineficientes (planos ruins, índices ausentes, muitas consultas pequenas) ou concorrência excessiva. Reduzir a carga antes de adicionar núcleos costuma ser mais barato e mais eficaz.

Recomendação: analytics/DWH — throughput, paralelismo e escala horizontal

Uma carga de data warehouse consiste em um pequeno número de consultas pesadas que varrem e agregam tabelas grandes. A prioridade aqui não é baixa latência, mas alto throughput de scan, paralelismo e, geralmente, uma arquitetura com escala horizontal.

Princípio geral: vertical vs horizontal + folga + medir primeiro

Como você escala importa tanto quanto qual recurso você escala. A escala vertical (uma máquina maior) é simples, mas tem teto e ponto único de falha; a horizontal (mais máquinas) escala, mas adiciona complexidade. Em todos os casos, deixe folga para picos de carga e valide a decisão com medições.

Abrir no DBAtlas →