วิธีที่ Plaid เพิ่มการประมวลผลแบบขนานของ Node ได้ 30 เท่า
(blog.plaid.com)Plaid เป็นบริการที่อ่านข้อมูลยอดคงเหลือของผู้ใช้จากธนาคาร แล้วนำไปให้บริการภายนอกผ่าน API ธนาคารแบบรวม
จากเดิมที่ใช้งาน Node worker 4,000 เครื่องโดยไม่มีการประมวลผลแบบขนาน เปลี่ยนมาเป็นการประมวลผลแบบขนานและประหยัดค่าใช้จ่ายได้ปีละ $300K
มีการสรุปแนวทางที่ลองทำเป็นขั้นตอนเพื่อให้สามารถนำการเปลี่ยนแปลงไปใช้ได้โดยไม่เกิดข้อผิดพลาดไว้อย่างดี
-
เพิ่มเมตริกใน Prometheus : V8 Heap Size, GC, Task Latency
-
สร้างแดชบอร์ด Grafana สำหรับวัดผลของการประมวลผลแบบขนาน
-
ใช้ฟีเจอร์แฟลกของ LaunchDarkly เพื่อปรับจูนผลของการประมวลผลแบบขนานได้โดยไม่ต้อง redeploy
-
สร้าง flamegraph ในโปรดักชันเพื่อวัดเวลา CPU
หลัง deploy จริง ก็ยังคงตรวจสอบต่อเนื่องและปรับแก้ซ้ำไปเรื่อย ๆ
-
เพิ่ม Max Heap Size ของ Node
-
แก้คอขวดของ S3 : เพิ่ม
maxSocketsที่ S3 client ลดไว้เหลือ 50 ขึ้นเป็น 20480 -
เพิ่มความเร็วในการทำ JSON Serialization - เปลี่ยน
bfjเป็นJSONStream -
กำหนดขนาด semi space เพื่อลดจำนวนครั้งของการทำ GC
-
ปรับเปลี่ยนวิธีการล็อกที่มี regex จำนวนมากเพื่อเพิ่มประสิทธิภาพเวลา CPU
1 ความคิดเห็น
โอ้โห