운영중인 PostgreSQL에서 pool size x server size 이외에 연결된 session이 있어 확인 해 봤다.
1. 현재 접속중인 session과 실행 중인 쿼리를 확인
select * from pg_stat_activity where datname = 'dbname';
2. 연결 중인 PID 중에 락이 걸린 테이블 확인
select *
from pg_locks,
pg_stat_all_tables
where pg_locks.relation = pg_stat_all_tables.relid
order by relation asc;
3. 락 걸린 PID 제거
select pg_terminate_backend(PID) from pg_stat_activity;