[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