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