Performance auf vagrant Testsystem

Hallo zusammen! Wir arbeiten hier im Development mit vagrant-Instanzen. Das funktioniert bei allen Projekten sehr gut, auch bei einem mit Symfony2 als Framework. Nur bei Shopware ist die Performance extrem schlecht (z.B. Time to first byte ohne Cache 16 Sekunden, mit Cache immer noch 2,5 Sekunden auf einer Kategorienseite). Auch gibt es im Backend immer mal wieder komische Fehlermeldung, etwa ‘GET / 0’. Die VM hat 4GB RAM, das Memory-Limit steht auf 1GB. Die Hostmaschinen sind aktuelle Apple-Hardware. Als Distribution läuft ubuntu inkl. dem Standard-LAMP-Stack (also u.a. inkl. opcache), auch an den configs sind bis auf memory_limit und IonCube keine Veränderungen vorgenommen. Gibt es da noch irgendwelche speziellen Schrauben, die man drehen muss, damit es einigermaßen schnell läuft? Denn selbst eine Testinstallation auf einem ganz normalen shared hosting ist um ein vielfaches schneller…

mh - Also auf meiner Vagrant Maschiene läuft es. Rund 700ms im Bearbeitungsmodus. Allerdings rauscht die VM ab und an auch mal auf 100% CPU Last hoch. Die VM hat hier bei mir 1 CPU Kern und 2GB RAM. Ist evtl. im Backend das Compiler Caching deaktiviert in den Theme Einstellungen? Ich nutze hier zwar nginx / php 5.6 / fpm & Co, aber daran sollte es jetzt nicht umbedingt liegen. Das memory_limit muss man auch nicht unbedingt auf 1GB setzen, Shopware benötigt ja lediglich 256M aufgrund des Composers / Kompilierens. Wenn das gesamte Caching allerdings deaktiviert ist, ist es bei Shopware normal, dass das ganze extrem lange benötigt. Wenn du hier Less Dateien bearbeitest, solltest du hier auch den Grunt Task nutzen, dieser geht wesentlich flotter als das Kompilieren über das Backend.

Wo finde ich denn das mit dem Compiler Caching? In den Grundeinstellungen habe ich nichts gesehen. Eigentlich brauch ich grunt oder das Shopware-Compiling auf der VM gar nicht, da auf dem Host ein grunt läuft, der sich darum kümmert. Wäre mir also am liebsten, das komplett auszuschalten. Ich befürchte aber, dass es nicht daran liegt. Das Backend müht sich auch ziemlich…

[quote=„msslovi0“]Wo finde ich denn das mit dem Compiler Caching? In den Grundeinstellungen habe ich nichts gesehen. Eigentlich brauch ich grunt oder das Shopware-Compiling auf der VM gar nicht, da auf dem Host ein grunt läuft, der sich darum kümmert. Wäre mir also am liebsten, das komplett auszuschalten. Ich befürchte aber, dass es nicht daran liegt. Das Backend müht sich auch ziemlich…[/quote] Hier: https://drive.google.com/file/d/0B6YdSl … p=drivesdk Mh … evtl. mal die VM neu starten? Wie ist denn die Auslastung vom Rechner bzgl. der VM? Bzgl. Grunt: Wie soll denn der Host schauen, ob eine Less Datei im Shopware Theme Ordner geändert wird und wohin er das kompilieren muss ohne die Shopware Grunt Datei? Das wäre mir neu. - Aber du brauchst das kompilieren ja eh nicht. Wie ist denn die Auslastung vom PHP Prozess welcher Shopware abfertigt? Irgendwas in den Logs der VM ? Ist das http Caching aktiviert? Wieviele Artikel laufen auf dem Shop ? Kommt damit evtl. die VM nicht klar, weil es zu viele sind?

1 „Gefällt mir“

Hallo msslovi0, wie synchronisierst du die Daten zwischen dem Host und der VM (NFS/Samba/SCP) und was benutzt du als Host-System (Windows/OSX/Linux)? Generell solltest du den cache Ordner aus der Synchronisierung raus nehmen, da dort viele kleine Dateien erzeugt werden. Viele Grüße, Benjamin Cremer :shopware:

1 „Gefällt mir“

[quote=„kayyy“]Hier: https://drive.google.com/file/d/0B6YdSl … p=drivesdk[/quote] Danke, da war aber kein Haken drin. [quote=„kayyy“]Mh … evtl. mal die VM neu starten?[/quote] Da die eh immer mal wieder einfriert mache ich mehrmals täglich ein vegrant destroy/vagrant up. [quote=„kayyy“]Wie ist denn die Auslastung vom Rechner bzgl. der VM?[/quote] Beansprucht den Rechner nicht nennenswert. Von allem genug frei. [quote=„kayyy“]Bzgl. Grunt: Wie soll denn der Host schauen, ob eine Less Datei im Shopware Theme Ordner geändert wird und wohin er das kompilieren muss ohne die Shopware Grunt Datei? [/quote] /var/www/ (DocumentRoot auf der vm) ist ein Folder, der auf dem Host geshared wird. Und auf dem lauscht der grunt auf dem Host. Das ist auch die einzig sinnvolle Vorgehensweise. Ich will ja nicht jede Änderung irgendwie manuell in die VM bringen. [quote=„kayyy“]Wie ist denn die Auslastung vom PHP Prozess welcher Shopware abfertigt? Irgendwas in den Logs der VM ?[/quote] Auslastung auf der VM ist nicht der Rede wert, Load grundsätzlich unter 1. In den Logfiles auf der VM findet sich gar nichts. [quote=„kayyy“]Ist das http Caching aktiviert?[/quote] Ja. Gecachte Seiten kommen auch mäßig schnell, ungecachte dauern ewig. [quote=„kayyy“]Wieviele Artikel laufen auf dem Shop ? Kommt damit evtl. die VM nicht klar, weil es zu viele sind?[/quote] Sind nur ~600 Artikel.

[quote=“Benjamin Cremer”]wie synchronisierst du die Daten zwischen dem Host und der VM (NFS/Samba/SCP) und was benutzt du als Host-System (Windows/OSX/Linux)?[/quote] Wir hatten bislang das benutzt: config.vm.synced\_folder "../webroot/", "/var/www/", :owner =\> "www-data", mount\_options: ["dmode=777","fmode=777"] [quote=“Benjamin Cremer”]Generell solltest du den cache Ordner aus der Synchronisierung raus nehmen, da dort viele kleine Dateien erzeugt werden.[/quote] Ich hab das jetzt mal umgebaut auf config.vm.synced\_folder "../webroot/", "/var/www/", type: "rsync", rsync\_\_exclude: [".git/", "/cache/", "web/cache/"], :owner =\> "www-data", mount\_options: ["dmode=777","fmode=777"] zusammen mit nem vagrant rsync-auto auf dem Host. Und es ist wirklich sehr viel besser geworden. An der Stelle hätte ich als allerletztes gesucht…