Como a Plaid aumentou em 30x o processamento paralelo em Node
(blog.plaid.com)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
bfjporJSONStream -
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
Ohhh