[LINUX] PHP‐FPM TUNED - fourslickz/notes GitHub Wiki

; ======== Konfigurasi PHP-FPM Process Manager ========

; Gunakan mode "dynamic" agar PHP-FPM menyesuaikan proses sesuai beban
pm = dynamic

; Jumlah maksimum proses PHP-FPM yang boleh berjalan
; Rumus: (CPU core x 8) → 8 x 8 = 64
pm.max_children = 64

; Jumlah awal proses yang berjalan saat PHP-FPM dimulai
; Rumus: (CPU core x 2) → 8 x 2 = 16
pm.start_servers = 16

; Jumlah minimum proses idle yang tetap berjalan
; Rumus: (CPU core x 1) → 8 x 1 = 8
pm.min_spare_servers = 8

; Jumlah maksimum proses idle sebelum dihentikan
; Rumus: (CPU core x 4) → 8 x 4 = 32
pm.max_spare_servers = 32

; Maksimum request yang dapat diproses per worker sebelum restart (menghindari memory leak)
pm.max_requests = 2000

; Timeout eksekusi script PHP
request_terminate_timeout = 120s

; Timeout membaca request dari Nginx
request_read_timeout = 30s

; Timeout mengirim response ke Nginx
request_slowlog_timeout = 5s

; Aktifkan log untuk script PHP yang berjalan lambat
slowlog = /var/log/php-fpm/slow.log

2. Optimasi Opsi opcache

Agar PHP berjalan lebih cepat, aktifkan OPcache di php.ini:

sudo nano /etc/php.ini
opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=65407
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=1

3. Pastikan PHP-FPM Tidak Overcommit Memory

Cek setting overcommit_memory:

cat /proc/sys/vm/overcommit_memory

Jika tidak 1, setel agar sistem tidak kehabisan RAM:

echo "vm.overcommit_memory = 1" | sudo tee -a /etc/sysctl.conf
sysctl -p

4. Pastikan PHP-FPM Berjalan di CPU yang Tepat

Cek CPU affinity PHP-FPM agar tetap di 8 core CPU:

sudo taskset -pc 0-7 $(pgrep php-fpm)

Cek apakah proses berjalan sesuai konfigurasi:

ps -ef | grep php-fpm