Cara Plaid Meningkatkan Pemrosesan Paralel Node hingga 30x
(blog.plaid.com)Plaid adalah layanan yang membaca informasi saldo pengguna dari bank lalu menyediakannya ke pihak luar melalui API perbankan terpadu.
Sebelumnya mereka mengoperasikan 4.000 worker Node tanpa paralelisasi, lalu beralih ke pemrosesan paralel dan menghemat $300K per tahun.
Berbagai pendekatan yang dicoba secara bertahap untuk menerapkan perubahan tanpa error dirangkum dengan baik.
-
Menambahkan metrik ke Prometheus: V8 Heap Size, GC, Task Latency
-
Membuat dashboard Grafana untuk mengukur dampak pemrosesan paralel
-
Menggunakan feature flag dari LaunchDarkly untuk menyesuaikan dampak pemrosesan paralel tanpa redeploy
-
Membuat flamegraph di production untuk mengukur waktu CPU
Setelah deployment aktual, mereka terus menyelidiki dan berulang kali melakukan perbaikan
-
Meningkatkan Max Heap Size Node
-
Menghilangkan bottleneck S3: menaikkan
maxSockets, yang diturunkan klien S3 menjadi 50, menjadi 20480 -
Meningkatkan kecepatan serialisasi JSON - mengganti
bfjdenganJSONStream -
Menentukan ukuran semi space untuk mengurangi frekuensi eksekusi GC
-
Mengubah metode logging yang banyak menggunakan regex untuk mengoptimalkan waktu CPU
1 komentar
Ohong