본문 바로가기
Q&A2026년 5월 28일2분 읽기

Vercel Fluid Compute — 동시 요청 처리 중 module-level Pool 누수

이서연
조회 573댓글 4

Vercel Fluid Compute로 전환하고 일주일 운영 중인데 인스턴스가 점진적으로 OOM 됩니다. 디버그해보니 pg Pool의 connection count가 시간에 따라 증가만 합니다.

// db.ts
import { Pool } from 'pg'
const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  max: 20,
})
export { pool }

// api/route.ts
import { pool } from '@/lib/db'
export async function GET() {
  const client = await pool.connect()
  try {
    const r = await client.query('SELECT ...')
    return Response.json(r.rows)
  } finally {
    client.release()  // 여기서 release하는데...
  }
}

매 요청 release 하는데도 idle connection이 1시간에 약 30개씩 누적. Postgres max_connections 한도 도달. Fluid Compute 환경에서 pg Pool 사용 패턴 잘못된 게 있을까요?

환경: Vercel Pro, Fluid Compute ON, Next 17, pg 8.13, Neon Postgres

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록