PHP-FPM (FastCGI Process Manager) adalah alternatif implementasi PHP FastCGI dengan beberapa fitur tambahan yang berguna untuk situs dengan ukuran besar.

Jika Anda seorang System Administrator (SysAdmin), lalu menggunakan web server Nginx dengan PHP5-FPM (atau PHP-FPM) dan pernah mengalami kesalahan seperti pesan kesalahan seperti dibawah ini :

[26-Sept-2017 10:10:04] WARNING: [pool www] server reached pm.max_children setting (35), consider raising it
[26-Sept-2017 12:04:52] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)

Itu artinya server Anda tidak memiliki cukup banyak proses yang tersedia untuk php-fpm.

Berdasarkan data log server Anda,¬† diperlukan cara untuk menentukan pengaturan yang benar pada konfigurasi php-fpm di server Anda. Pengaturan yang tepat didasarkan pada memori yang tersedia untuk server atau server virtual Anda, namun perlu diketahui juga bahwa Anda harus melakukan proses lain juga. Salah satu caranya adalah memetakan “pm.max_children” pada file konfigurasi www.conf yang terletak di dalam¬†/etc/php-fpm.d/.

Perhitungan max_children

Contohnya: jika server kita memiliki RAM 4 GB, dan menjalankan database MySQL, Server MySQL akan berjalan dengan baik minimal akan mengkonsumsi memory sebesar 1 GB, agar mendapatkan 4 GB (2,5 GB) atau 2,5 GB RAM atau 2560 Mb.

pm.max_children akan mengelola proses sekitar 2560 Mb / 60 Mb = 42 max_children”.

Maka, setingan untuk pm.max_children di file konfigurasi /etc/php-fpm.d/www.conf , seperti berikut :

pm.max_children = 40
pm.start_servers = 15
pm.min_spare_servers = 15
pm.max_spare_servers = 25
pm.max_requests = 500

Apabila sudah disesuaiken dengan setingan tersebut, jangan lupa untuk melakukan restart service php-fpm pada server Anda, semoga bermanfaat.