April 27, 2024

Menambah Maksimum Koneksi Nginx dan PHP

Webserver Nginx yang menggunakan PHP, bisa diatur jumlah koneksinya, biar bisa melayani lebih banyak user pada satu saat bersamaan. Pengaturannya justru ada di PHP nya.

Untuk mengaturnya, silahkan edit file /etc/php/7.0/fpm/pool.d/www.conf berikut menjadi:

pm.max_children = 25
pm.start_servers = 7
pm.min_spare_servers = 5
pm.max_spare_servers = 10

Dengan aturan sebagai berikut:

pm.max_children adalah jumlah maksimal yang diperkenankan. Dalam hal ini adalah 25 layanan yang diberikan oleh server;

pm.start_servers adalah jumlah layanan yang diaktifkan saat server dinyalakan. Jumlah ini tidak boleh lebih kecil dari angka minimal dibawah.

pm.min_spare_servers adalah jumlah layanan minimal yang nganggur menunggu permintaan dari user.

pm.max_spare_servers adalah jumlah layanan maksimal yang nganggur tidak mendapat permintaan dari user. Kalau lebih dari angka ini, maka sejumlah layanan akan dinon-aktifkan dari server hingga angka maksimal ini.

Rekomendasi Jumlah Layanan

Jumlah pm.max_children tergantung dari besaran server dan penggunaan server untuk aplikasi lainnya. Bila server ini memang dedicated untuk webserver saja, maka angka ini bisa dibuat lebih besar lagi.

Angka pm.start_servers disarankan antara angka pm.min_spare_servers dan pm.max_spare_servers. Misal:

pm.min_spare_servers = 10
pm.max_spare_servers = 20

maka pm.start_servers bisa 10, 11, 12, 14, 16, 18, ataupun 19.

Yang pasti, pm.max_spare_servers tidak boleh lebih besar dari pm.max_children.

Peringatan, penambahan jumlah koneksi ini harus diikuti juga dengan penambahan koneksi di sisi databasenya. Bila koneksi web banyak tetapi koneksi databasenya masih kecil, maka akan ada banyak web yang gagal aksesnya ke database. Untuk mengubah jumlah koneksi database disampaikan di artikel terpisah.

Aktifkan Settingan Baru

Jangan lupa untuk restart service PHP nya untuk mengaktifkan setting tersebut diatas.

service php7.0-fpm restart