Trilha Pleno Trilha

Escala: Puma horizontal

O curso trata de dimensionar e operar uma aplicação Rails no Puma, primeiro numa máquina e depois em várias. Ele explica workers e threads, a GVL e como núcleos, memória e conexões de banco limitam o número de workers. Aborda pools de conexões e PgBouncer, preload_app! e copy-on-write, vazamento de memória e fragmentação, e os tipos de restart do Puma. Depois passa por ausência de estado, roteamento e health checks do balanceador, e fecha com uma configuração completa para um host de 4 núcleos e 8GB.

O que você vai aprender

  • ✓A diferença entre workers e threads do Puma e o efeito da GVL em cada um
  • ✓Como escolher workers e threads a partir de núcleos, memória, conexões e tempo de fila
  • ✓Como calcular conexões de banco entre hosts, workers e pools
  • ✓O efeito de preload_app!, copy-on-write e ajustes do alocador na memória
  • ✓Hot restart, phased restart, drenagem com SIGTERM e worker_timeout
  • ✓O que uma aplicação precisa para rodar em mais de uma máquina
Prévia grátis · Aula 1 4 min de leitura

Os dois botões: workers e threads

Abra o config/puma.rb deste repositório. Os comentários dele já explicam o modelo, e o arquivo é curto o bastante para ler inteiro:

Ler a aula completa grátis →

Currículo

7 aulas
Digite para buscar...