Site icon bintorosoft.com

Laravel Production Stack: Queues, Horizon und FPM Tuning

Laravel ist ein beliebtes PHP-Framework, das für moderne Webanwendungen vielseitige Features bietet. In Produktionsumgebungen sind jedoch zusätzliche Optimierungen notwendig, um hohe Lasten zu bewältigen und Hintergrundjobs effizient zu verarbeiten. Dieser Leitfaden zeigt, wie Sie einen stabilen Laravel Production Stack mit Queues, Horizon und PHP-FPM Tuning aufbauen.

PHP-FPM für Laravel optimieren

PHP-FPM (FastCGI Process Manager) ist essenziell, um Laravel performant auszuführen. Standardwerte reichen in Produktionsumgebungen oft nicht aus.

Empfohlene pm Einstellungen

[www]
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Diese Einstellungen sorgen dafür, dass ausreichend Worker bereitstehen, aber der Speicherverbrauch begrenzt bleibt. pm.max_requests hilft, Speicherlecks zu vermeiden.

OPcache aktivieren

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0

OPcache reduziert die PHP-Ausführungszeit, indem PHP-Skripte vorkompiliert im Speicher gehalten werden. Für Produktionssysteme sollte validate_timestamps deaktiviert werden, um maximale Geschwindigkeit zu erreichen.

Queues in Laravel konfigurieren

Laravel Queues ermöglichen die asynchrone Verarbeitung von Jobs, was die User-Experience verbessert und lange laufende Prozesse aus dem Request-Response-Zyklus auslagert.

Queue Driver

QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

Worker starten

php artisan queue:work --daemon --sleep=3 --tries=3

Der --daemon Modus sorgt dafür, dass Worker persistente Prozesse sind, was die Startup-Zeit reduziert. --sleep und --tries steuern Pausen und Retry-Verhalten.

Horizon für Monitoring und Management

Laravel Horizon ist ein Dashboard für Redis-basierte Queues und bietet detailliertes Monitoring, Job-Statistiken und Retry-Management.

Installation und Setup

composer require laravel/horizon
php artisan horizon:install
php artisan migrate

Horizon konfigurieren

// config/horizon.php
'environments' => [
    'production' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue' => ['default'],
            'balance' => 'simple',
            'processes' => 10,
            'tries' => 3,
        ],
    ],
],

Die Anzahl der processes sollte basierend auf der Serverkapazität und der erwarteten Job-Last gewählt werden.

Horizon starten

php artisan horizon

Horizon kann als Supervisor-Prozess laufen und überwacht automatisch Worker, startet sie neu und bietet ein Web-Dashboard unter /horizon.

Rate Limits und Job Queues

In produktiven Umgebungen sollten Sie Job Queues und Requests sorgfältig steuern, um Engpässe zu vermeiden.

Queue Prioritäten

Monitoring

Zusammenfassung und Best Practices

Mit diesen Maßnahmen erreicht Ihr Laravel Production Stack stabile Performance, geringe Latenz bei Requests und eine zuverlässige Verarbeitung von Hintergrundjobs. Eine saubere Trennung von Queues, persistente Worker-Prozesse und ein aktives Monitoring sind essenziell für Enterprise-Umgebungen.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version