GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menghitung max_connections untuk PostgreSQL dan default_pool_size untuk pgbouncer?

Pertama, harap baca pertanyaan kanonik kami tentang Perencanaan Kapasitas.

Kedua, Anda salah melihat ini.
Jumlah memori (atau sumber daya lainnya) yang Anda miliki tidak menentukan jumlah koneksi yang Anda atur, jumlah koneksi yang Anda butuhkan menentukan seberapa kuat server yang harus Anda beli.
Persyaratan sumber daya per sambungan diberikan dalam manual dengan sangat rinci, serta dibahas di Wiki yang Anda tautkan. Cari tahu apa yang dibutuhkan lingkungan Anda (atau buat tebakan cerdas) dan pastikan perangkat keras yang akan Anda jalankan dapat menangani apa yang akan Anda lakukan.

Khususnya ulang:batas koneksi dan ukuran kumpulan, Anda harus memiliki koneksi yang "cukup" untuk memenuhi persyaratan aplikasi Anda - baik di satu server atau melalui kumpulan/bouncer.

"Cukup" adalah angka relatif:Aplikasi yang membuat (dan terus menggunakan kembali) satu sambungan hanya memerlukan satu sambungan. Aplikasi yang membuat koneksi untuk setiap pengguna akhir yang masuk membutuhkan koneksi DB sebanyak yang dimiliki pengguna.

Nilai default untuk Postgres dan pgbouncer masuk akal sebagai default :

  • 100 koneksi basis data banyak untuk orang biasa yang melempar Postgres ke lingkungan.
    Pengembang mungkin tidak membutuhkan lebih dari 10. Orang lain akan cukup tahu untuk menambah jumlahnya.

  • 20 koneksi dari pgbouncer per kumpulan DB berarti Anda bisa mendapatkan 4 kumpulan yang menunjuk ke satu server dan tidak melebihi batas koneksi default Postgres.
    Dimungkinkan untuk memiliki banyak sumber daya yang dikumpulkan di pgbouncer menunjuk ke satu database back-end, dan Anda selalu menginginkan beberapa koneksi yang tersedia di server back-end Anda.

Jika default tidak cocok untuk lingkungan Anda, Anda diharapkan untuk mengubahnya.

Ingatlah bahwa koneksi gabungan tidak berarti "selalu ikat setiap koneksi database yang tersedia".
Inti dari pgbouncer seperti yang Anda catat adalah untuk menggunakan kembali koneksi. Keuntungan efisiensi di sini tidak mengharuskan Anda mengikat setiap koneksi yang tersedia, hanya saja Anda tidak memutuskan, menghubungkan kembali, menegosiasikan ulang SSL, mengautentikasi ulang ke database, dan menjalankan kembali kueri penyiapan koneksi Anda setiap saat.


Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Cara mengkonfigurasi koneksi jarak jauh dan aman untuk MySQL di Ubuntu 16.04

  3. Cara setting shmall, shmmax, shmmin, dll.. secara umum dan untuk postgresql

  1. Bagaimana Cara Mencari File Berdasarkan Ukuran Dan Ekstensi?

  2. Cara Mencadangkan dan Memulihkan Basis Data di PostgreSQL

  3. Cara Memasang dan Mengamankan Server PostgreSQL di RockyLinux 8

  1. Aktifkan SSL dan Koneksi Jarak Jauh untuk MySQL

  2. Cara Mengizinkan Koneksi Jarak Jauh ke Database PostgreSQL menggunakan psql

  3. Bagaimana cara memantau nilai cwnd dan ssthresh untuk koneksi TCP?