5 pontos por xguru 2019-12-14 | 1 comentários | Compartilhar no WhatsApp

A Plaid é um serviço que lê informações de saldo dos usuários a partir de bancos e as fornece externamente por meio de uma API bancária unificada.

Depois de operar 4.000 workers Node sem paralelização, mudou para processamento paralelo e economizou US$ 300 mil por ano.

O texto organiza muito bem as abordagens tentadas em etapas para aplicar a mudança sem erros.

  • Adição de métricas no Prometheus: tamanho do heap do V8, GC, latência de tarefas

  • Criação de um dashboard no Grafana para medir o efeito do processamento paralelo

  • Uso de feature flags do LaunchDarkly para ajustar o efeito do processamento paralelo sem fazer novo deploy

  • Geração de flamegraphs em produção para medir tempo de CPU

Após o deploy real, continuaram investigando e repetindo correções

  • Aumento do Max Heap Size do Node

  • Remoção do gargalo no S3: aumento de maxSockets, que o cliente S3 reduzia para 50, para 20480

  • Melhoria da velocidade de serialização JSON - substituição de bfj por JSONStream

  • Definição do tamanho do semi-space para reduzir a frequência de execução do GC

  • Otimização do tempo de CPU ao mudar a forma de logging, que usava muitas regex

1 comentários

 
chusouk 2019-12-17

Ohhh