DEV Community

丁久
丁久

Posted on • Originally published at dingjiu1989-hue.github.io

Connection Pooling Guide

This article was originally published on AI Study Room. For the full version with working code examples and related articles, visit the original post.

Connection Pooling Guide

Connection Pooling Guide

Connection Pooling Guide

Connection Pooling Guide

Connection Pooling Guide

Connection Pooling Guide

Connection Pooling Guide

Connection Pooling Guide

Why Connection Pooling Matters

Creating database connections is expensive: TCP handshake, SSL negotiation, and authentication add 7-35ms per connection. Connection pooling reuses established connections.

How Pools Work

A pool maintains a set of open connections. When a thread requests one, an idle connection is returned immediately. If all are busy, the thread waits.

Pool Configuration

| Parameter | Recommended | |-----------|-------------| | maxSize | 10-20 per CPU core | | connectionTimeout | 30000ms | | maxLifetime | 1800000ms (30min) |

HikariCP (Java)

spring.datasource.hikari:

maximum-pool-size: 20

minimum-idle: 5

connection-timeout: 30000

max-lifetime: 1800000

PgBouncer (PostgreSQL)

[pgbouncer]

pool_mode = transaction

default_pool_size = 25

max_client_conn = 100

Pgbouncer sits between application and database. Transaction mode returns connections to pool after each transaction.

Sizing Formula

pool_size = (core_count * 2) + effective_spindle_count

For 8 CPU cores with SSD: 17 connections. More connections causes context switching overhead.

Monitoring

SELECT state, count(*) FROM pg_stat_activity

WHERE backend_type = 'client backend' GROUP BY state;

Monitor for idle-in-transaction connections and pool exhaustion.

Conclusion

Size pools based on CPU cores, not concurrent users. Use PgBouncer for high-scale PostgreSQL deployments. Set timeouts and max lifetimes. Monitor pool usage and connection leaks.


Read the full article on AI Study Room for complete code examples, comparison tables, and related resources.

Found this useful? Check out more developer guides and tool comparisons on AI Study Room.

Top comments (0)