PHP-FPM yapılandırması
PHP-FPM havuz ayarlarını ve process manager'ı öğrenirsin.
PHP-FPM havuzu
PHP-FPM istekleri worker process'lerle işler. pm = dynamic işlem yöneticisi (process manager) havuzu boşta küçük, yük altında büyütür.
pm.max_children eşzamanlı worker sayısının üst sınırını belirler. memory_limit her worker'ın kullanabileceği en fazla bellektir.
Yanlış ayar 502 Bad Gateway veya bellek taşmasına yol açar; bu yüzden havuz yapılandırması üretimde kritiktir.
Worker sayıları ve bellek
Worker başına memory_limit = 128M sıradan API'ler için yeterli, ağır iş kuyrukları için 256M veya üzeri gerekir.
pm.start_servers açılışta başlatılacak worker sayısıdır. pm.min_spare_servers ve pm.max_spare_servers boşta bekleyen worker aralığını tutar.
Kaba ölçüt: pm.max_children × memory_limit sunucu RAM'ini aşmamalı. Aşarsa işletim sistemi process öldürmeye başlar.
Uygulama PHP-FPM havuz yapılandırması üret
PHP ile bir PHP-FPM havuz yapılandırma metni üret: pm = dynamic, pm.max_children = 20, pm.start_servers = 4 ve memory_limit = 128M satırlarından oluşsun. file_put_contents ile php-fpm-pool.conf adına yaz ve metni ekrana bas.
Örnek çözümü göster
$cfg değişkenini tek tırnaklı parçalar ve "\n" ile birleştir. Sonra file_put_contents("php-fpm-pool.conf", $cfg); ve echo $cfg; çağrılarını ekle.
Örnek çözüm:
<?php
// PHP-FPM havuz yapılandırmasını üret
$cfg = 'pm = dynamic' . "\n" .
'pm.max_children = 20' . "\n" .
'pm.start_servers = 4' . "\n" .
'memory_limit = 128M' . "\n";
file_put_contents("php-fpm-pool.conf", $cfg);
echo $cfg;
Kendini test et
-
memory_limit değerini yaz
<?php // Her worker için 128 MB $cfg = ["memory_limit" => "____"]; print_r($cfg);Cevabı göster
<?php // Her worker için 128 MB $cfg = ["memory_limit" => "128M"]; print_r($cfg); -
PHP-FPM için hangi ayar worker başına bellek sınırını belirler?
- memory_limit
- pm.max_children
- max_execution_time
- upload_max_filesize
Cevabı göster
memory_limit — Doğru. memory_limit her worker'ın kullanabileceği en fazla bellektir.
-
PHP-FPM yönergelerini eşleştir
- pm.max_children
- Maksimum worker sayısı
- memory_limit
- Worker başına bellek
- pm.start_servers
- Başlangıçta worker sayısı
- pm = dynamic
- Dinamik işlem yöneticisi