Jika skenario bisnis Anda melibatkan banyak koneksi singkat atau memerlukan pembuatan dan penghapusan koneksi secara berkala, Anda dapat mengaktifkan fitur kolam koneksi untuk ApsaraDB RDS for PostgreSQL. Fitur ini menggunakan kembali koneksi database untuk mengurangi overhead performa pada instans Anda secara signifikan. Selain itu, fitur ini membantu mengontrol beban server dan konsumsi sumber daya.
Fitur
Fitur kolam koneksi ApsaraDB RDS for PostgreSQL didasarkan pada komponen open source PgBouncer. Komponen ini bertindak sebagai middleware antara aplikasi Anda dan database untuk mengelola serta menggunakan kembali koneksi database.
Penggunaan ulang koneksi: Kolam koneksi memprioritaskan penggunaan ulang koneksi yang ada, sehingga menghindari overhead performa dari seringnya pembuatan dan penghapusan koneksi. Hal ini mengurangi beban server database, meningkatkan waktu respons aplikasi, dan meningkatkan konkurensi.
Kontrol sumber daya: Kolam koneksi memungkinkan Anda menetapkan batasan pada parameter seperti jumlah maksimum koneksi klien dan waktu idle maksimum, mencegah terlalu banyak koneksi yang mengonsumsi sumber daya sistem.
Prasyarat
Instans ApsaraDB RDS for PostgreSQL Anda harus memenuhi persyaratan berikut:
Versi mesin utama instans adalah PostgreSQL 11 atau yang lebih baru.
Seri produk adalah Edisi Dasar atau Edisi Ketersediaan Tinggi.
Metode penagihan adalah langganan atau bayar sesuai penggunaan.
Versi mesin minor instans adalah 20240830 atau yang lebih baru, dan nomor versi tidak memiliki akhiran
babelfish.CatatanUntuk informasi lebih lanjut tentang cara melihat atau meningkatkan versi mesin minor, lihat Tingkatkan versi mesin minor instans ApsaraDB RDS for PostgreSQL.
Penagihan
Fitur ini gratis.
Catatan
Saat Anda mengaktifkan PgBouncer, port PgBouncer baru (default: 6432) dialokasikan. Akses langsung melalui port database asli (default: 5432) tidak terpengaruh. Setelah Anda menonaktifkan PgBouncer, Anda tidak lagi dapat mengakses instans melalui port PgBouncer. Pastikan aplikasi Anda dikonfigurasi untuk menggunakan port database asli.
Setelah Anda mengaktifkan PgBouncer, sistem secara otomatis menginstal plugin pgbouncer_fdw dan dblink di database postgres untuk mendukung melihat metrik kolam koneksi. Plugin ini tidak dapat dihapus.
Saat Anda mengaktifkan enkripsi SSL untuk sebuah instans, PgBouncer juga mengaktifkan SSL. Namun, ini tidak mendukung autentikasi koneksi dengan Daftar Kontrol Akses (ACL) disetel ke `verify-ca` atau `verify-full`, atau penggunaan file pencabutan sertifikat klien.
Untuk aplikasi yang melibatkan transaksi kompleks, memerlukan pelacakan status koneksi database, atau menggunakan fitur PostgreSQL tertentu, hubungkan langsung ke database alih-alih menggunakan PgBouncer.
Waktu idle maksimum untuk koneksi dalam kolam adalah 10 menit secara default. Koneksi idle yang melebihi durasi ini akan ditutup. Nilai ini tidak dapat diubah.
Prosedur
Aktifkan atau nonaktifkan kolam koneksi
Buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Kemudian, temukan instans RDS dan klik ID instans tersebut.
Di panel navigasi di sebelah kiri, klik Database Connection.
Klik Enable PgBouncer atau Disable PgBouncer.
Di kotak dialog yang muncul, klik OK.
Setelah PgBouncer diaktifkan, Anda dapat melihat port PgBouncer (default: 6432) di halaman Database Connection.
Anda dapat mengklik Change Endpoint. Di jendela Change Endpoint, pilih tipe titik akhir dan modifikasi PgBouncer Port.
Hubungkan ke instans RDS for PostgreSQL melalui kolam koneksi
Setelah Anda mengaktifkan PgBouncer, ganti port koneksi dengan port PgBouncer (default: 6432) di aplikasi atau klien Anda. Parameter koneksi lainnya, seperti titik akhir, nama pengguna, dan kata sandi, tetap tidak berubah. Untuk informasi lebih lanjut tentang cara menghubungkan ke instans, lihat Hubungkan ke instans ApsaraDB RDS for PostgreSQL.
Modifikasi parameter kolam koneksi
Setelah Anda mengaktifkan PgBouncer, Anda dapat menggunakan fitur Pengaturan Parameter untuk memodifikasi parameter PgBouncer dan menyesuaikan konfigurasi kolam koneksi, seperti mengontrol jumlah maksimum koneksi klien.
Anda dapat melihat dan memodifikasi parameter PgBouncer menggunakan fitur Pengaturan Parameter setelah mengaktifkan PgBouncer.
Jika Anda ingin menggunakan template parameter untuk memodifikasi parameter dalam batch, pertama-tama aktifkan PgBouncer, lalu terapkan template parameter ke instans RDS for PostgreSQL Anda.
Template parameter default adalah PostgreSQL_PgBouncer_Default Parameter Template (rpg-sys-pgsql-pgbouncer).
Parameter yang dapat dimodifikasi dijelaskan sebagai berikut:
Parameter | Tipe | Nilai default | Deskripsi |
pgbouncer.pool_mode | string | transaction | Mode kolam koneksi.
|
pgbouncer.default_pool_size | int | 20 | Jumlah default koneksi yang diizinkan dalam kolam koneksi. |
pgbouncer.max_client_conn | int | 100 | Jumlah maksimum koneksi klien yang diizinkan oleh kolam koneksi. |
pgbouncer.min_pool_size | int | 0 | Jumlah minimum koneksi klien yang diizinkan oleh kolam koneksi. |
pgbouncer.query_wait_timeout | int | 120 | Waktu maksimum dalam detik bahwa kueri dapat menunggu dalam antrian untuk eksekusi. Nilai 0 menunjukkan waktu tunggu tak terbatas. Jika kueri habis waktu, klien secara otomatis terputus. |
pgbouncer.ignore_startup_parameters | string | "extra_float_digits" | Daftar parameter tambahan yang diabaikan oleh kolam koneksi, dipisahkan koma. Secara default, kolam koneksi hanya memproses parameter inti (client_encoding, datestyle, timezone, standard_conforming_strings). Parameter lain menyebabkan koneksi ditolak. Untuk mendukung parameter tambahan, daftarkan mereka di sini. Kolam koneksi secara otomatis mengabaikan parameter ini untuk memastikan koneksi berhasil. Penting Saat Anda menambahkan parameter lain, pertahankan extra_float_digits untuk memastikan kompatibilitas dengan koneksi Java Database Connectivity (JDBC) PostgreSQL. |
pgbouncer.stats_users | string | "" | Daftar pengguna, dipisahkan koma, yang diizinkan untuk terhubung ke database virtual kolam koneksi dan menjalankan kueri read-only. |
Untuk informasi lebih lanjut tentang parameter, lihat dokumentasi resmi PgBouncer.
Lihat metrik kolam koneksi
Anda dapat menggunakan fitur Pemantauan Ditingkatkan untuk melihat metrik kolam koneksi. Metrik terkait tersedia di Pemantauan Ditingkatkan hanya setelah Anda mengaktifkan fitur kolam koneksi.
Metrik tersebut adalah sebagai berikut:
Metrik | Deskripsi |
db.pgbouncer.client_connections.active | Jumlah koneksi klien aktif. |
db.pgbouncer.client_connections.waiting | Jumlah koneksi klien yang menunggu. |
db.pgbouncer.server_connections.active | Jumlah koneksi server aktif. |
db.pgbouncer.server_connections.idle | Jumlah koneksi server idle. |
db.pgbouncer.total_pooled_connections | Jumlah total koneksi dalam kolam koneksi. |
db.pgbouncer.num_pools | Jumlah kolam koneksi. |
Operasi API Terkait
Anda dapat memanggil operasi ModifyDBInstanceConfig untuk mengaktifkan atau menonaktifkan fitur PgBouncer untuk instans RDS for PostgreSQL. Parameter yang harus Anda konfigurasikan adalah sebagai berikut:
Parameter | Deskripsi | Contoh |
DBInstanceId | ID instans RDS for PostgreSQL untuk mana Anda ingin mengaktifkan atau menonaktifkan fitur PgBouncer. | pgm-**** |
ConfigName | Nama item konfigurasi. | pgbouncer |
ConfigValue | Nilai item konfigurasi.
| true |