Plaid, Node paralel işlemesini 30 kat nasıl artırdı
(blog.plaid.com)Plaid, bankalardan kullanıcıların bakiye bilgilerini okuyup bunu birleşik bankacılık API’si üzerinden dışarıya sunan bir hizmet.
Paralelleştirme olmadan 4000 Node worker çalıştırırken, paralel işlemeye geçip yıllık 300 bin dolar tasarruf etti.
Değişikliği hatasız uygulamak için adım adım denedikleri yaklaşımlar iyi özetlenmiş.
-
Prometheus’a metrik ekleme: V8 Heap Size, GC, Task Latency
-
Paralel işlemenin etkisini ölçmek için Grafana dashboard oluşturma
-
LaunchDarkly feature flag’leriyle yeniden deploy etmeden paralel işlemenin etkisini ayarlama
-
CPU süresini ölçmek için production’da flamegraph oluşturma
Gerçek deploy sonrasında da araştırmaya devam edip düzeltmeleri tekrarladılar.
-
Node’un Max Heap Size değerini artırma
-
S3 darboğazını giderme: S3 client’ın 50’ye düşürdüğü
maxSocketsdeğerini 20480’e çıkarma -
JSON serialization hızını artırma -
bfjyerineJSONStreamkullanma -
Semi-space boyutunu belirleyerek GC çalışma sayısını azaltma
-
Çok sayıda regex içeren logging yöntemini değiştirerek CPU süresini optimize etme
1 yorum
Vay be