Cơ sở dữ liệu 22/09/2026 6 phút

Vì sao nhiều kết nối PostgreSQL tốn RAM — và vì sao con số ps đánh lừa bạn

PostgreSQL fork một tiến trình riêng cho mỗi kết nối, nên nhiều kết nối tốn RAM và CPU. Đo thật: 60 kết nối tạo 60 tiến trình, ps RSS gợi ý 16 MB/kết nối nhưng đó là con số ảo do đếm trùng shared_buffers — RAM thật của kết nối idle chỉ ~0,44 MB. Vì sao vấn đề thật nằm ở kết nối hoạt động và context switch. PostgreSQL 16.

Cơ sở dữ liệu 22/09/2026 6 phút

Chi phí một kết nối PostgreSQL: đo thật vì sao pool nhanh gấp 18 lần

Một kết nối PostgreSQL có hai loại chi phí: thiết lập (fork backend, xác thực, nạp catalog) và bộ nhớ tích lũy. Đo thật: mở lại kết nối mỗi truy vấn cho 1.306 TPS so với 24.228 TPS khi tái dùng — chậm 18 lần. Và bộ nhớ backend phình từ 1,3 MB lên 2,1 MB khi chạm nhiều bảng. Vì sao pooling là giải pháp kỹ thuật. PostgreSQL 16.