Bağlantı Havuzlama: PgBouncer
PgBouncer'ı işlem havuzlama modunda çalıştırın, havuz boyutlarını doğru belirleyin ve hazırlanmış ifade tuzağından kaçının.
Bağlantı Havuzlama: PgBouncer, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
Bağlantılar Neden Havuzlanır
Her PostgreSQL bağlantısı ayrı bir OS işlemidir; bellek ve CPU açısından ağırdır. Her istek için bağlantı açıp kapatan uygulamalar sunucunun kaynaklarını hızla tüketir. Havuzlama, az sayıdaki uzun ömürlü bağlantının yeniden kullanılmasını sağlar.
Bağlantı Başına Maliyet
Tipik bir PostgreSQL arka uç işlemi 5–10 MB RAM kullanır. 500 bağlantı, yalnızca arka uç işlemleri için yaklaşık 5 GB RAM demektir. PgBouncer, binlerce istemciyi 50 arka uç bağlantısı üzerinde çoklayabilir.
Üç Havuzlama Kipi
- Oturum — istemci, oturumun tamamı boyunca özel bir bağlantı alır
- İşlem — istemci, her işlem için bir bağlantı alır
- İfade — her ifade için bir bağlantı (nadiren kullanılır)
İşlem Kipi (Önerilen)
Her işlem bir sunucu bağlantısı alır. Aynı istemci, işlemler arasında farklı bağlantılar kullanabilir.
# pgbouncer.ini
[databases]
mydb = host=primary port=5432 dbname=mydb
[pgbouncer]
pool_mode = transaction
listen_port = 6432
max_client_conn = 1000
default_pool_size = 50İşlem Kipiyle İlgili Noktalar
Oturum durumu gerektiren özellikler çalışmaz:
- Hazırlanmış ifadeler (çağrılar arasında aynı arka uç işlemi gerekir)
- SET LOCAL ... (işlem başına olması uygundur; işlemler arasında kalıcı olan SET ... uygun değildir)
- LISTEN / NOTIFY (kalıcı bağlantı gerekir)
- Bir işlemden uzun yaşayan imleçler
Oturum Kipi
İşlem kipi uygulamanızın çalışmasını bozuyorsa bunu kullanın — ancak eş zamanlı istemci sayınız daha az olur.
Havuzları Boyutlandırma
Pratik kural: default_pool_size ≈ vCPU count × 2 + spindles. Çok yüksek değer, bağlam değiştirme nedeniyle aktarım hızını düşürür; çok düşük değer ise havuzda beklemeye yol açar.
HAProxy'nin Önünde PgBouncer
Tipik üretim yığını:
App → HAProxy (read/write routing) → PgBouncer (pooling) → Postgres
İşlem Kipinde Hazırlanmış İfadeler
Güncel PgBouncer (1.21 ve sonrası), işlem kipinde protokol düzeyinde hazırlanmış ifadeleri destekler. Eski sürümlerde basit sorguları veya oturum kipini kullanın.
PgBouncer'ı İzleme
Yönetici veritabanına (özel veritabanına) bağlanın:
psql -p 6432 -U pgbouncer pgbouncer
-- Commands:
SHOW STATS;
SHOW POOLS;
SHOW CLIENTS;
SHOW SERVERS;Alternatifler
- pgpool-II — havuzlama + yük dengeleme + sorgu yeniden yazma
- Odyssey — Yandex'in çok iş parçacıklı havuzlayıcısı
- Sürücü tarafı havuzları — genellikle küme genelinde havuzlama için PgBouncer ile birlikte kullanılır
Uygulama Havuzu + PgBouncer
Uygulamalar genellikle kendi bağlantı havuzlarını (HikariCP, pgxpool) çalıştırır VE PgBouncer üzerinden bağlanır. İki katmanlı havuzlama kullanılır: uygulama havuzu PgBouncer'a olan bağlantıları korur; PgBouncer bunları PostgreSQL bağlantıları üzerinde çoklar.
Özet
PgBouncer, kayda değer ölçekteki her sistem için gereklidir.
- İşlem kipi standarttır
- Hazırlanmış ifadeler / SET / LISTEN kullanımına dikkat edin
- Havuz boyutu yaklaşık vCPU × 2 olmalıdır
- SHOW POOLS ile izleyin
Hızlı Kontrol
En az sayıdaki sunucu bağlantısı üzerinde en fazla istemciyi hangi PgBouncer kipi çoklar?
Sıkça Sorulan Sorular
“Bağlantı Havuzlama: PgBouncer” dersi ücretsiz mi?
Evet — “Bağlantı Havuzlama: PgBouncer” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“Bağlantı Havuzlama: PgBouncer” dersinde ne öğreneceğim?
PgBouncer'ı işlem havuzlama modunda çalıştırın, havuz boyutlarını doğru belirleyin ve hazırlanmış ifade tuzağından kaçının. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Bağlantı Havuzlama: PgBouncer” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- pg_stat_statements: En Önemli Sorgular
- Günlük Analizi için pgBadger
- Bağlantı Havuzlama: PgBouncer
- Kapasite Planlama ve Şişkinlik Denetimleri