Ich führe einen Warteschlangenarbeiter aus, der sich mit sechs MQs verbindet. Wenn es hochgefahren wird, verbraucht es 25 MB RAM. Das heißt, es gibt null Jobs in der Warteschlange, d. H. Der Arbeiter befindet sich in einem Schlafzustand. Ich benutze Larvel für alle meine Projekte, dieses spezielle Projekt ist rein für den Queue-Worker gebaut (d. H. Einen Microservice ohne Web-Zugang).
Ich möchte den Speicherbedarf reduzieren, aber noch wichtiger möchte ich wissen, wo der Speicher verbraucht wird. Ich benutze PHP 7.1 so jetzt, dass xhprof nicht mehr Profile Speicher muss ich eine Alternative herausfinden.
Ich weiß, dass Lumen weniger Speicher verbrauchen soll, und es scheint zumindest, dass Lumen eine Teilmenge von Laravel ist. Ist es möglich, Teile meiner Laravel App auszuschalten, so dass sie Lumen nachahmt? Ich habe versucht, Zeilen aus dem Array config / app.php $providers
auszukommentieren, aber es scheint keinen großen Unterschied im Speicherverbrauch zu geben (~ 1MB nach meinem Maß).
tl; dr; wie man den Laravel-Speicher-Footprint "zwickt"? wie man Laravel in Lumen verwandelt?
Danke
EDIT: Bilder oder es ist nicht passiert. AFAIK die RES-Spalte ist in Kilobyte, also ~ 39MB Speicher.
Könnte dies dazu beitragen, den Speicher, der in Ihrer Warteschlange verwendet wird, zu reduzieren.
url: Laravel-Warteschlangen - Ressourcenüberlegungen
Überlegungen zur Ressource
Daemon-Warteschlangen-Worker starten das Framework vor der Verarbeitung jedes Jobs nicht neu. Daher sollten Sie alle schweren Ressourcen freigeben, nachdem jeder Job abgeschlossen ist. Wenn Sie beispielsweise eine Bildbearbeitung mit der GD-Bibliothek durchführen, sollten Sie den Speicher mit imagedestroy
freigeben, wenn Sie fertig sind.
Haben Sie Ihre php.ini überprüft und alle Erweiterungen deaktiviert, die Sie nicht für Ihren Mitarbeiter benötigen? Rest der Codebasis.
Sie könnten eine benutzerdefinierte php.ini für diesen Worker erstellen und über die Befehlszeilenargumente
bereitstellenphp -c warteschlange_php.ini artisan queue: work.
Vergessen Sie nicht, dass der Speicher-Footprint, den Sie dort sehen, für all diese PHP-Ausführung gilt, also den JIT-Compiler und alle Erweiterungen, die geladen werden, und was auch immer sie laden.
Tags und Links memory php laravel lumen memory-footprint