PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara meningkatkan koneksi maksimal di postgres?

Hanya meningkatkan max_connections adalah ide yang buruk. Anda perlu meningkatkan shared_buffers dan kernel.shmmax juga.

Pertimbangan

max_connections menentukan jumlah maksimum koneksi bersamaan ke server database. Standarnya biasanya 100 koneksi.

Sebelum meningkatkan jumlah koneksi, Anda mungkin perlu meningkatkan penerapan. Namun sebelum itu, Anda harus mempertimbangkan apakah Anda benar-benar membutuhkan peningkatan batas koneksi.

Setiap koneksi PostgreSQL menggunakan RAM untuk mengelola koneksi atau klien yang menggunakannya. Semakin banyak koneksi yang Anda miliki, semakin banyak RAM yang akan Anda gunakan yang dapat digunakan untuk menjalankan database.

Aplikasi yang ditulis dengan baik biasanya tidak membutuhkan banyak koneksi. Jika Anda memiliki aplikasi yang membutuhkan banyak koneksi, maka pertimbangkan untuk menggunakan alat seperti pg_bouncer yang dapat mengumpulkan koneksi untuk Anda. Karena setiap koneksi menggunakan RAM, Anda harus meminimalkan penggunaannya.

Cara meningkatkan koneksi maksimal

1. Tingkatkan max_connection dan shared_buffers

di /var/lib/pgsql/{version_number}/data/postgresql.conf

ubah

max_connections = 100
shared_buffers = 24MB

untuk

max_connections = 300
shared_buffers = 80MB

shared_buffers parameter konfigurasi menentukan berapa banyak memori berdedikasi ke PostgreSQL untuk digunakan menyimpan data .

  • Jika Anda memiliki sistem dengan RAM 1 GB atau lebih, nilai awal yang wajar untuk shared_buffers adalah 1/4 dari memori di sistem Anda.
  • tampaknya Anda tidak akan menemukan penggunaan lebih dari 40% RAM untuk bekerja lebih baik daripada jumlah yang lebih kecil (seperti 25%)
  • Perhatikan bahwa jika sistem Anda atau build PostgreSQL 32-bit, mungkin tidak praktis untuk menyetel shared_buffers di atas 2 ~ 2.5GB.
  • Perhatikan bahwa pada Windows, nilai besar untuk shared_buffers tidak efektif, dan Anda mungkin menemukan hasil yang lebih baik dengan mempertahankannya secara relatif rendah dan menggunakan cache OS lebih banyak. Di Windows rentang yang berguna adalah 64MB hingga 512MB .

2. Ubah kernel.shmmax

Anda perlu meningkatkan ukuran segmen maks kernel menjadi sedikit lebih besar daripada shared_buffers .

Dalam file /etc/sysctl.conf mengatur parameter seperti yang ditunjukkan di bawah ini. Ini akan berlaku ketika postgresql reboot (Baris berikut membuat kernel max menjadi 96Mb )

kernel.shmmax=100663296

Referensi

Koneksi Postgres Max Dan Buffer Bersama

Menyetel Server PostgreSQL Anda



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa pg_restore berhasil kembali tetapi tidak benar-benar memulihkan database saya?

  2. Tolok ukur Meltdown PostgreSQL

  3. Pemicu sisipan Postgresql untuk menetapkan nilai

  4. Cara Memulai Server PostgreSQL di Mac OS X melalui Homebrew

  5. Panda memperbarui sql