Meningkatkan saja max_connectionsadalah ide yang buruk. Anda perlu meningkatkan shared_buffersdan kernel.shmmaxjuga.
Pertimbangan
max_connectionsmenentukan jumlah maksimum koneksi bersamaan ke server database. Standarnya biasanya 100 koneksi.
Sebelum meningkatkan jumlah koneksi, Anda mungkin perlu meningkatkan penerapan Anda. Tetapi sebelum itu, Anda harus mempertimbangkan apakah Anda benar-benar membutuhkan peningkatan batas koneksi.
Setiap koneksi PostgreSQL menggunakan RAM untuk mengelola koneksi atau klien 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, pertimbangkan untuk menggunakan alat seperti pg_bouncer yang dapat mengumpulkan koneksi untuk Anda. Karena setiap koneksi menggunakan RAM, Anda harus berusaha meminimalkan penggunaannya.
Cara meningkatkan koneksi maks
1. Meningkatkan max_connectiondanshared_buffers
di /var/lib/pgsql/{version_number}/data/postgresql.conf
perubahan
max_connections = 100
shared_buffers = 24MB
untuk
max_connections = 300
shared_buffers = 80MB
The shared_buffersparameter konfigurasi menentukan berapa banyak memori yang didedikasikan untuk PostgreSQL untuk digunakan untuk caching data yang .
- Jika Anda memiliki sistem dengan RAM 1GB atau lebih, nilai awal yang wajar untuk shared_buffers adalah 1/4 dari memori di sistem Anda.
- sepertinya Anda tidak akan menemukan menggunakan lebih dari 40% RAM untuk bekerja lebih baik daripada jumlah yang lebih kecil (seperti 25%)
- Ketahuilah bahwa jika sistem atau build PostgreSQL Anda 32-bit, mungkin tidak praktis untuk menyetel shared_buffers di atas 2 ~ 2.5GB.
- Perhatikan bahwa di Windows, nilai besar untuk shared_buffers tidak seefektif itu, dan Anda mungkin menemukan hasil yang lebih baik dengan menjaganya tetap rendah dan lebih sering menggunakan cache OS. Di Windows, kisaran yang berguna adalah 64MB hingga 512MB .
2. Ubah kernel.shmmax
Anda perlu meningkatkan ukuran segmen kernel maks menjadi sedikit lebih besar
dari shared_buffers.
Dalam file, /etc/sysctl.confatur parameter seperti yang ditunjukkan di bawah ini. Ini akan berlaku saat postgresqlreboot (Baris berikut membuat kernel maks 96Mb)
kernel.shmmax=100663296
Referensi
Koneksi Postgres Max Dan Buffer Bersama
Menyetel Server PostgreSQL Anda