# Plaid가 Node 병렬처리를 30배로 늘린 방법

> Clean Markdown view of GeekNews topic #1078. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=1078](https://news.hada.io/topic?id=1078)
- GeekNews Markdown: [https://news.hada.io/topic/1078.md](https://news.hada.io/topic/1078.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2019-12-14T12:30:00+09:00
- Updated: 2019-12-14T12:30:00+09:00
- Original source: [blog.plaid.com](https://blog.plaid.com/how-we-parallelized-our-node-service-by-30x/)
- Points: 5
- Comments: 1

## Topic Body

Plaid는 은행으로부터 사용자의 잔고정보를 읽어서 통합뱅킹 API로 외부에 제공하는 서비스.

병렬화 없이 4000대의 Node워커를 운용하다가, 병렬 처리로 바꾸고 년간 $300K를 절약.

오류없이 변경을 적용하기 위해 단계별 시도한 접근들을 잘 정리.

- Prometheus에 메트릭 추가 : V8 Heap Size, GC, Task Latency

- 병렬처리 효과 측정용 Grafana 대쉬보드 생성

- LaunchDarkly 의 피쳐플래그를 이용해서 재디플로이 없이 병렬처리 효과를 튜닝

- CPU 시간을 측정하기 위해 프로덕션에 flamegraph 생성

실제 디플로이후 계속 조사하고 수정을 반복

- Node의 Max Heap Size 증가

- S3 보틀넥 제거 : S3클라이언트가 50으로 줄여버리는 maxSockets 를 20480으로 증가

- JSON Serialization 속도 향상 - bfj 를 JSONStream 으로 대치

- semi space 크기를 지정해서 GC 수행횟수를줄이기

- regex 가 많이 들어간 로깅 방식을 바꿔서 CPU 시간 최적화

## Comments



### Comment 726

- Author: chusouk
- Created: 2019-12-17T07:25:01+09:00
- Points: 1

오홍
