Connection pool cold start

On-call incidentMedium35 min

Your task

Every deploy of your service produces a clean, identical pattern: for the first ~2-3 minutes after each pod takes traffic, p99 to a downstream database (via PgBouncer) is 5-8x normal, then it settles to baseline and stays there. p50 is only mildly affected. It's not JIT (the app is Go) and CPU/GC aren't the issue. During the bad window, downstream connection-establishment and TLS-handshake counts are very high, then drop to near zero once it settles. The connection pool is configured but starts empty on each new pod. How do you triage and fix?

It covers

  • P99 regression
  • Connection pool
  • Cold pool