Tüm Ürünler
Search
Belge Merkezi

ApsaraDB RDS:Enable or disable the connection pool (PgBouncer)

Son Güncelleme:Oct 03, 2026

Uygulamanız çok sayıda kısa ömürlü bağlantı oluşturuyorsa veya yüksek bağlantı değişim oranına sahipse bağlantı havuzunu (PgBouncer) etkinleştirmek veritabanı sunucu yükünü azaltır ve yanıt süresini iyileştirir. PgBouncer, uygulamanız ile ApsaraDB RDS for PostgreSQL arasında konumlanarak arka uç bağlantılarını birçok istemci bağlantısı arasında yeniden kullanır; böylece veritabanının sürekli olarak bağlantı açıp kapatması engellenir.

Bağlantı havuzunun ne zaman kullanılacağı

Her iş yükü PgBouncer'dan fayda görmez. Havuzlu veya doğrudan bağlantı türlerinden hangisini seçmeniz gerektiğine karar vermek için aşağıdaki tabloyu kullanın.

Senaryo Bağlantı türü Neden
Sunucusuz veya uç işlevler Havuzlu Her çağrı yeni bir bağlantı oluşturur
Çok sayıda eşzamanlı isteğe sahip web uygulamaları Havuzlu İstek başına bağlantı ek yükünü azaltır
ORM çerçevelerinden kaynaklanan yüksek bağlantı değişimi Havuzlu Arka uç bağlantılarını yeniden kullanır
Şema geçişleri Doğrudan Geçiş araçları SET deyimlerini veya danışman kilitlerini kullanabilir
Uzun süren analitik sorgular Doğrudan Havuz rekabetini önler
pg_dump veya pg_restore Doğrudan Oturum düzeyinde SET deyimlerini kullanır
Mantıksal çoğaltma Doğrudan Kalıcı bir oturum gerektirir
Hazırlanmış ifadeler (işlem modunda) Doğrudan İşlem havuzlamasında desteklenmez

Ön koşullar

Başlamadan önce ApsaraDB RDS for PostgreSQL örneğinizin aşağıdaki tüm gereksinimleri karşıladığından emin olun:

  • Ana motor sürümü: PostgreSQL 11 veya üzeri

  • Ürün serisi: Basic Edition veya High-availability Edition

  • Faturalama yöntemi: abonelik veya kullandıkça öde

  • Küçük motor sürümü: 20240830 veya üzeri, babelfish soneki olmadan

Küçük motor sürümünü görüntülemek veya yükseltmek için bkz. ApsaraDB RDS for PostgreSQL örneğinin küçük motor sürümünü yükseltme.

Faturalama

Bu özellik ücretsizdir.

Nasıl çalışır?

PgBouncer, uygulamanız ile veritabanı arasında bir ara katman görevi görür. İstemciler varsayılan olarak 6432 numaralı bağlantı noktasından PgBouncer'a bağlanır. PgBouncer, PostgreSQL'e yönelik arka uç bağlantılarını varsayılan olarak 5432 numaralı bağlantı noktasında tutar ve yapılandırılan havuz moduna göre bunları istemcilere atar.

PgBouncer etkinleştirildiğinde:

  • Yeni bir PgBouncer bağlantı noktası (varsayılan: 6432) tahsis edilir. Mevcut bağlantılarınız orijinal veritabanı bağlantı noktası (5432) üzerinden etkilenmez.

  • Sistem, bağlantı havuzu ölçümlerini desteklemek üzere postgres veritabanına pgbouncer_fdw ve dblink eklentilerini yükler. Bu eklentiler kaldırılamaz.

Bağlantı havuzunu etkinleştirin veya devre dışı bırakın

  1. Örnekler sayfasına gidin. Üst gezinme çubuğundan RDS örneğinizin bulunduğu bölgeyi seçin. Örneği bulun ve ID değerine tıklayın.

  2. Sol gezinme bölmesinde Database Connection öğesine tıklayın.

  3. Enable PgBouncer veya Disable PgBouncer seçeneğine tıklayın.

  4. Görüntülenen iletişim kutusunda OK düğmesine tıklayın.

PgBouncer etkinleştirildikten sonra Database Connection sayfasında PgBouncer bağlantı noktası (varsayılan: 6432) görünür. Bağlantı noktasını değiştirmek için Modify Endpoint seçeneğine tıklayın, bir uç nokta türü seçin ve PgBouncer Port alanını güncelleyin.

Not

PgBouncer'ı devre dışı bıraktıktan sonra 6432 numaralı bağlantı noktasını kullanacak şekilde yapılandırılmış uygulamalar bağlanamaz. Devre dışı bırakmadan önce uygulamalarınızı orijinal veritabanı bağlantı noktasına (varsayılan: 5432) geri yönlendirin.

Bağlantı havuzu üzerinden bağlanma

PgBouncer'ı etkinleştirdikten sonra uygulamanızın bağlantı bağlantı noktasını 5432'den 6432'ye güncelleyin. Diğer tüm bağlantı parametreleri — uç nokta, kullanıcı adı ve parola — değişmeden kalır.

Önce (doğrudan bağlantı):

postgresql://<username>:<password>@<endpoint>:5432/<database>

Sonra (havuzlu bağlantı):

postgresql://<username>:<password>@<endpoint>:6432/<database>

Daha fazla bilgi için bkz. ApsaraDB RDS for PostgreSQL örneğine bağlanma.

Bağlantı havuzu parametrelerini yapılandırma

PgBouncer'ı etkinleştirdikten sonra bağlantı havuzu davranışını ayarlamak için Parameter Settings özelliğini kullanın.

Not

Parameter Settings, yalnızca PgBouncer etkinleştirildikten sonra PgBouncer parametrelerini gösterir. Parametreleri toplu olarak değiştirmek için bir

parameter template

uygulamak istiyorsanız önce PgBouncer'ı etkinleştirin, ardından şablonu uygulayın.

Varsayılan parametre şablonu PostgreSQL_PgBouncer_Default Parameter Template (rpg-sys-pgsql-pgbouncer) şeklindedir.

Havuz modu

pgbouncer.pool_mode parametresi, PgBouncer'ın arka uç bağlantısını havuza ne zaman iade edeceğini kontrol eder.

Mod Varsayılan Nasıl çalışır Ne zaman kullanılır
transaction Evet Her işlemden sonra bağlantıyı iade eder Çoğu uygulama. En yüksek bağlantı yeniden kullanımını sağlar.
session Hayır İstemci bağlantısı kesildiğinde bağlantıyı iade eder Oturum düzeyi özellikleri kullanan uygulamalar (SET, LISTEN, hazırlanmış ifadeler, danışman kilitleri)
statement Hayır Her deyimden sonra bağlantıyı iade eder. Yalnızca otomatik onaylama iş yükleri için geçerlidir. Birden çok deyimi kapsayan işlemler desteklenmez. Yalnızca otomatik onaylama iş yükleri

Bağlantı sınırları

Aşağıdaki parametreler, PgBouncer'ın kabul ettiği ve veritabanına ilettiği bağlantı sayısını kontrol eder. max_client_conn ve default_pool_size farklı katmanlarda çalışır: max_client_conn gelen istemci bağlantılarını sınırlarken default_pool_size giden arka uç bağlantılarını sınırlar. Birçok istemci, daha küçük bir arka uç bağlantı havuzunu paylaşabilir; bu, bağlantı havuzlamanın temel faydasıdır.

Parametre Tür Varsayılan Ne kontrol eder
pgbouncer.max_client_conn int 100 PgBouncer'ın kabul ettiği maksimum istemci bağlantısı sayısı
pgbouncer.default_pool_size int 20 Bağlantı havuzunda izin verilen varsayılan bağlantı sayısı
pgbouncer.min_pool_size int 0 Bağlantı havuzu tarafından izin verilen minimum istemci bağlantısı sayısı

Diğer parametreler

Parametre Tür Varsayılan Açıklama
pgbouncer.query_wait_timeout int 120 Bir sorgunun kuyrukta bekleyebileceği maksimum süre (saniye). Zaman aşımına ulaşıldığında istemcinin bağlantısı kesilir. Süresiz bekleme için 0 olarak ayarlayın.
pgbouncer.ignore_startup_parameters string "extra_float_digits" PgBouncer'ın yoksaydığı başlangıç parametrelerinin virgülle ayrılmış listesi. Varsayılan olarak PgBouncer yalnızca çekirdek parametreleri (client_encoding, datestyle, timezone, standard_conforming_strings) işler ve bilinmeyen parametreler gönderen bağlantıları reddeder. Ekstra parametreleri buraya ekleyin. PostgreSQL JDBC (Java Database Connectivity) sürücüleriyle uyumluluğu korumak için her zaman extra_float_digits parametresini saklayın.
pgbouncer.stats_users string "" PgBouncer sanal veritabanına bağlanmaya ve salt okunur sorgular çalıştırmaya izin verilen kullanıcıların virgülle ayrılmış listesi.

Tam parametre referansı için resmi PgBouncer belgelerine bakın.

Bağlantı havuzu ölçümlerini görüntüleme

Bağlantı havuzu etkinliğini izlemek için Enhanced Monitoring kullanın. Ölçümler yalnızca PgBouncer etkinleştirildikten sonra kullanılabilir.

Ölçüm Açıklama
db.pgbouncer.client_connections.active Etkin istemci bağlantıları
db.pgbouncer.client_connections.waiting Arka uç bağlantısı bekleyen istemci bağlantıları
db.pgbouncer.server_connections.active Etkin arka uç bağlantıları
db.pgbouncer.server_connections.idle Boştaki arka uç bağlantıları
db.pgbouncer.total_pooled_connections Havuzdaki toplam bağlantı sayısı
db.pgbouncer.num_pools Bağlantı havuzu sayısı

Sınırlamalar

  • Havuzdaki bir bağlantı için maksimum boşta kalma süresi 10 dakikadır. Bu süreyi aşan boşta kalan bağlantılar otomatik olarak kapatılır. Bu değer değiştirilemez.

  • Örnekte SSL şifrelemesi etkinleştirildiğinde PgBouncer da SSL'yi etkinleştirir. PgBouncer, Erişim Kontrol Listesi (ACL) verify-ca veya verify-full olarak ayarlandığında bağlantı kimlik doğrulamasını desteklemez ve istemci sertifikası iptal dosyalarını desteklemez.

API referansı

PgBouncer'ı programatik olarak etkinleştirmek veya devre dışı bırakmak için ModifyDBInstanceConfig işlemini çağırın.

Parametre Açıklama Örnek
DBInstanceId RDS for PostgreSQL örneğinin ID değeri pgm-****
ConfigName Yapılandırma öğesinin adı pgbouncer
ConfigValue Etkinleştirmek için true, devre dışı bırakmak için false true

Sonraki adımlar