Setelan child process PHP-FPM

Kalau anda pernah merasa kok website PHP anda terasa lambat atau sering error timeout bahkan internal server error, padahal resource VPS anda masih dirasa cukup lega maka wajib anda cek lognya. Dan apabila anda menemukan pesan seperti ini didalamnya:

WARNING: [pool www] server reached pm.max_children setting (4), consider raising it.

Setidaknya ada yang bisa anda coba dulu sebelum berpikir upgrade.

Jadi pm.max_children ini menentukan berapa banyak child process (proses anakan) dari mesin PHP-FPM yang bisa digunakan dalam waktu bersamaan. Kerja paralel kalau anda bingung. Apabila terlalu banyak request dan pekerjanya kurang maka jelas bisa lambat atau ngelag.

Solusinya (atau pertolongan pertama) adalah dengan meningkatkan jumlah child process yang bisa dibuat oleh PHP. Lokasi konfigurasinya biasa ada di /etc/php-fpm.d/www.conf dan silahkan edit kode dibawah:

pm.max_children = 10

Catatan saja, jumlah proses diatas cumalah contoh karena spesifikasi dan stack pada setiap VPS bisa berbeda. Sesuaikan saja dan eksperimen ambil nilai terbaiknya. Jangan lupa restart PHP-FPM setelahnya.

3 pemikiran pada “Setelan child process PHP-FPM

  1. mas chandra, saya lagi coba2 tweak php, ada beberapa artikel yang merekomendasikan di bagian pm yang pengaturannya dari dynamic ubah ke ondemand untuk pengurangan konsumsi memory, mohon dibuat artikelnya mas.
    trims sebelumnya.

  2. php-fpm.service – The PHP FastCGI Process Manager
    Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
    Active: active (running) since Tue 2017-01-24 11:55:49 UTC; 31s ago
    Main PID: 13795 (php-fpm)
    Status: “Processes active: 0, idle: 5, Requests: 1, slow: 0, Traffic: 0req/sec”
    CGroup: /system.slice/php-fpm.service
    ├─13795 php-fpm: master process (/etc/php-fpm.conf)
    ├─13796 php-fpm: pool www
    ├─13797 php-fpm: pool www
    ├─13798 php-fpm: pool www
    ├─13799 php-fpm: pool www
    └─13800 php-fpm: pool www

    Jan 24 11:55:49 gelas systemd[1]: Starting The PHP FastCGI Process Manager…
    Jan 24 11:55:49 gelas php-fpm[13795]: [24-Jan-2017 11:55:49] WARNING: [pool www] ACL set, listen.owner = ‘nobody’ is ignored
    Jan 24 11:55:49 gelas php-fpm[13795]: [24-Jan-2017 11:55:49] WARNING: [pool www] ACL set, listen.group = ‘nobody’ is ignored
    Jan 24 11:55:49 gelas systemd[1]: Started The PHP FastCGI Process Manager.

    Artikel semacam ini uda dibahas belum mas?

Tinggalkan komentar