logo

NodeJS 와 PostgreSQL Connection Pool

language-logoNodeJS
language-logoPostgreSQL
language-logoExpressJS
language-logoJava

• 커넥션 풀 설정은 데이터베이스와의 연결을 관리하는 중요한 설정으로, 이를 통해 최대 연결 개수를 설정할 수 있다. 이 설정은 서비스의 성능과 안정성에 큰 영향을 미친다. 실험에서는 Node와 PostgreSQL을 사용하며, 최대 커넥션 생성 개수를 5로 설정하였다.
• 설정된 최대 커넥션 개수를 초과하는 트래픽이 발생할 경우, 커넥션 풀 설정에 따라 서비스의 처리 방식이 달라진다. 이를 테스트하기 위해 Apache Bench를 사용하여 일정 트래픽을 생성하였다. 결과적으로, 커넥션 풀 설정은 서비스의 성능을 결정짓는 중요한 요소임을 확인할 수 있었다.
• Apache Bench를 이용한 테스트 결과, 20명의 동시 사용자가 총 100번 요청을 보낼 때 평균 응답시간은 60초로 나타났다. 이는 3초 쿼리를 20명이 호출하는데 60초가 걸린 이유는 커넥션 풀(Connection Pool) 때문이다. 커넥션 풀은 클라이언트 요청이 오면 connection을 주고, 처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식으로, 데이터베이스 연결 및 데이터베이스 읽기/쓰기 작업과 관련된 오버헤드를 줄이는 것이 주 목적이다.
• 커넥션 풀의 max를 4로 설정하면, 동시에 7개의 DB 쿼리 요청이 들어왔을 때 최대 커넥션 수(4개)가 3초간 처리 중이 되고, 나머지 3개는 대기 상태에 빠진다. 이로 인해 실제로 3초씩 지연이 누적되는 것을 확인할 수 있다. 이를 통해 커넥션 풀의 중요성과 올바른 설정의 필요성을 알 수 있다.

thumbnail
북마크
공유하기
신고하기
11분 분량
조회수 234
profile-image향로
2년 전
Copyright © 2025. Codenary All Rights Reserved.