PHP · RFC-Watch
RFC prüft integriertes FPM im Programm php
Matthieu Napoli hat einen RFC zu --enable-cli-fpm gestartet.
Die Build-Option würde FPM in das Programm php integrieren. FPM ließe sich mit --fpm als erstem Argument oder über einen Aufruf unter einem php-fpm-Namen starten. Die CLI bliebe unverändert. Messungen von Bref auf AWS Lambda zeigen eine rund 26 MB große Binärdatei weniger im Laufzeitsystem und 70 Millisekunden weniger Kaltstartzeit, also 25 Prozent. Das eigenständige php-fpm bleibt erhalten.
Matthieu Napoli hat die Diskussion über den RFC --enable-cli-fpm eröffnet. Die geplante Build-Option bindet die FPM-SAPI in das Programm php ein. FPM startet, wenn --fpm als erstes Argument übergeben wird oder der Aufruf über einen Namen erfolgt, der mit php-fpm beginnt. Alle anderen Aufrufe bleiben CLI-Aufrufe mit dem bisherigen Verhalten. Zusätzlich wird weiterhin ein eigenständiges php-fpm-Programm gebaut.
php script.php # CLI, as today
php --fpm --nodaemonize -y /etc/php-fpm.conf # FPM
ln -s php php-fpm
./php-fpm --nodaemonize -y /etc/php-fpm.conf # FPM, through a symlinkNapoli hat die Lösung mit Bref auf AWS Lambda vermessen. Bei der Auslieferung eines einzigen Programms entfällt eine von zwei ungefähr 26 MB großen Binärdateien aus der Laufzeitumgebung. Unter dem 250-MB-Limit von Lambda bleibt dadurch mehr Platz für Anwendungscode. Der Kaltstart einer minimalen FPM-Anwendung verkürzt sich laut Messung um 70 Millisekunden, also 25 Prozent. FPM muss die Engine nach dem Laden durch die CLI nicht erneut laden. Der Ansatz kann auch auf Systemen mit hohen Anforderungen an Startzeit oder Speicherplatz helfen, etwa bei Autoscaling und Serverless-Plattformen.
Der RFC enthält eine zweite Abstimmung zur Frage, ob die Option standardmäßig aktiviert werden soll. Marc hatte diese Abstimmung vorgeschlagen, als Napoli RFC-Karma beantragte. Napoli bittet Paketbetreuer außerdem um Rückmeldung zu einem php-fpm-Symlink auf das kombinierte Programm php. Das FPM-Paket würde dann nur Konfigurations- und Service-Dateien enthalten. Die Umsetzung liegt in php/php-src Pull Request 23558. Jakub und Marc haben den Code bisher geprüft.
Leserforum
Noch keine Beiträge — eröffne die Debatte.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.