당신의 Node.js 앱이 아마도 당신의 PostgreSQL을 망치고 있을 겁니다 (Connection Pooling 설명)
(dev.to)
이 아티클은 Node.js 애플리케이션이 PostgreSQL 데이터베이스에 과도하게 많은 연결을 생성하여 메모리 고갈 및 성능 문제를 일으키는 이유를 설명합니다. 각 PostgreSQL 연결이 5-10MB RAM을 소비하며, Node.js의 마이크로서비스 아키텍처와 기본 연결 풀 설정이 이 문제를 악화시킨다고 지적합니다. 해결책으로 `max_connections`를 늘리는 대신 PgBouncer와 같은 외부 연결 풀러를 사용하여 실제 데이터베이스 연결 수를 효율적으로 관리할 것을 제안합니다.
이 글의 핵심 포인트
- 1PostgreSQL은 각 연결마다 전용 백엔드 프로세스를 생성하며, 각 프로세스는 5-10MB의 RAM을 소비한다.
- 2Node.js 앱은 마이크로서비스 아키텍처와 기본 연결 풀 설정으로 인해 쉽게 75개 이상의 유휴 연결을 생성할 수 있으며, 280개 연결 시 약 1.96GB RAM을 소모한다.