PHP-FPM Status Monitoring¶
Deze documentatie beschrijft hoe je de PHP-FPM status kunt monitoren voor Brekz hosting omgevingen, inclusief configuratie van slow request logging en process management instellingen.
Overzicht¶
-
FPM Status Check
Hoe je de PHP-FPM status opvraagt via de command line
-
Slow Logs
Configuratie en locatie van slow request logs
-
Process Management
PHP-FPM process manager configuratie
-
Pool Configuratie
Overzicht van pool configuratie bestanden
FPM Status Opvragen¶
Om de PHP-FPM status handmatig op te vragen via de command line, gebruik je het cgi-fcgi commando met de juiste environment variables.
Productie Omgeving¶
sudo SCRIPT_NAME=/fpm-status-brekz-prod-lje908u3hjssd \
SCRIPT_FILENAME=/fpm-status-brekz-prod-lje908u3hjssd \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect /var/run/php/brekz7.1.sock
Socket Locatie
De PHP-FPM socket voor Brekz productie is: /var/run/php/brekz7.1.sock
Status Output
De output toont informatie over:
- Actieve processen
- Wachtrij status
- Pool statistieken
- Uptime en request totalen
Slow Request Logging¶
Slow request logging helpt bij het identificeren van langlopende PHP requests die performance problemen kunnen veroorzaken.
Log Locaties¶
Locatie: /var/log/php7.1-fpm-slow-brekz-prod.log
Timeout: 10 seconden
Alle requests die langer dan 10 seconden duren worden gelogd naar dit bestand.
Locatie: /var/log/php7.1-fpm-slow-brekz-accept.log
Timeout: 5 seconden
Alle requests die langer dan 5 seconden duren worden gelogd naar dit bestand.
Locatie: /var/log/php-fpm/php-71-frpm-brekz-slow.log
Timeout: 5 seconden
Verouderd
Dit is een oudere log locatie die mogelijk nog in gebruik is op legacy systemen.
ConfiguratieVoorbeeld¶
; Timeout in seconden voordat een request als 'slow' wordt gemarkeerd
request_slowlog_timeout = 10s
; Pad naar het slow log bestand
slowlog = /var/log/php7.1-fpm-slow-brekz-prod.log
Process Management Configuratie¶
De PHP-FPM process manager (PM) regelt hoeveel worker processen er actief zijn en hoe deze geschaald worden.
Huidige PM Instellingen¶
; Dynamic process management
pm = dynamic
; Maximum aantal child processen
pm.max_children = 120
; Aantal processen bij start
pm.start_servers = 8
; Minimum aantal idle servers
pm.min_spare_servers = 5
; Maximum aantal idle servers
pm.max_spare_servers = 15
; Aantal requests per proces voordat restart
pm.max_requests = 100
Uitleg Parameters¶
| Parameter | Waarde | Beschrijving |
|---|---|---|
pm |
dynamic |
Gebruikt dynamische scaling van worker processen |
pm.max_children |
120 |
Maximum aantal gelijktijdige worker processen |
pm.start_servers |
8 |
Aantal workers bij opstarten van PHP-FPM |
pm.min_spare_servers |
5 |
Minimum aantal idle workers (worden bijgemaakt indien nodig) |
pm.max_spare_servers |
15 |
Maximum aantal idle workers (worden gestopt indien overtollig) |
pm.max_requests |
100 |
Een worker wordt herstart na dit aantal requests (memory leak preventie) |
Performance Tuning
Deze waarden zijn afgestemd op de Brekz workload. Bij performance problemen kun je:
pm.max_childrenverhogen voor meer concurrent vermogenpm.start_serversverhogen voor snellere startuppm.max_requestsverlagen bij memory leak problemen
Pool Configuratiebestanden¶
PHP-FPM pools zijn gescheiden configuraties voor verschillende omgevingen.
Productie Pool¶
Bestand: /etc/php/7.1/fpm/pool.d/brekz.conf
; Slow request logging
request_slowlog_timeout = 10s
slowlog = /var/log/php7.1-fpm-slow-brekz-prod.log
Acceptatie Pool¶
Bestand: /etc/php/7.1/fpm/pool.d/brekz-accept.conf
; Slow request logging
request_slowlog_timeout = 5s
slowlog = /var/log/php7.1-fpm-slow-brekz-accept.log
Pool Scheiding
Door aparte pools te gebruiken voor productie en acceptatie kunnen beide omgevingen onafhankelijk van elkaar draaien op dezelfde server met eigen resource limits en logging.
Gerelateerde Documentatie¶
Troubleshooting¶
FPM status geeft geen output
Controleer of:
- De PHP-FPM service draait:
sudo systemctl status php7.1-fpm - Het socket bestand bestaat:
ls -la /var/run/php/brekz7.1.sock - Je sudo rechten hebt om het commando uit te voeren
Slow logs zijn leeg
Als er geen entries in de slow logs staan:
- Controleer of de timeout niet te hoog staat
- Verifieer dat de log directory schrijfbaar is
- Check de pool configuratie in
/etc/php/7.1/fpm/pool.d/
Te veel processen actief
Bij te veel actieve processen:
- Controleer
pm.max_childrenin de pool config - Monitor met
sudo ps aux | grep php-fpm | wc -l - Overweeg om process limits aan te passen