본문 바로가기

Database/Postgresql

[Postgresql] max_connection 늘리기, 현재 connection 확인 (windows)

postgresql db 를 실행하다 보면 connection pool이 다 차서 애플리케이션에서 연결을 못한다는 메세지를 볼 때가 있다. 현재 설치되어 있는 postgresql db의 설정값들을 쿼리로 쉽게 알아볼 수 있다.

 

현재 DB 설정값 조회

 

Heidisql 등의 DB Client 툴을 실행 시키고 Postgresql db에 접속 한다. 아래 쿼리를 수행하면 현재 설정되어있는 DB system 설정을 볼 수 있다

 

SELECT * FROM pg_settings;

여러가지 설정 중에 max_connections 값이 최대 동시 접속수를 지정하는 값이다. 기본값은 100으로 설정되어 있음을 볼 수 있다.

 

현재 사용되는 connection 정보 조회

 

최대 동시 접속 값은 찾았으나 여러 어플리케이션 수행중에 현재 사용되고 있는 connection 수를 알고 싶을 때가 있다.

 

아래 DB 쿼리를 실행하면 현재 붙어있는 connection 상세 정보와 전체 갯수를 파악 할 수 있다.

 

SELECT * from pg_stat_activity;

 

기본적으로 시스템에서 5개의 activity가 수행되고 있고 방금 쿼리를 수행한 client backend 기록이 결과에 나타남을 알 수 있다. client의 접속 IP, application name, backend type등 상세 정보도 같이 보여준다.

 

Max connections 설정 늘리기

 

그러면 현재 connection pool이 부족해서 늘리고 싶다면 어떻게 할까? postgresql 설정 파일에서 값을 바꾼후 DB를 재시작하면 된다. 아래 windows 설치 경로의 conf 파일에서 max_connections 값을 200으로 바꾸고 재기동 해보자.

 

C:\Program Files\PostgreSQL\13\data\postgresql.conf

 

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)

 

윈도우즈 작업 관리자에서 서비스 재시작

 

서비스 재 시작 후 쿼리로 설정값을 보면 max_connectinos가 200으로 바뀜을 알 수 있다.

 

-- The End --