Geschwindigkeitsproblem bei 1&1 Ionos
Ich habe bei Ionos (1&1) für einen Kunden einen neuen Vertrag angelegt und Contao 4.4 über den Contao-Manager installiert. Theme Rocksolid Luxe.
Das hat alles gut funktioniert. Aber es gibt ein merkwürdiges Phänomen:
Beim ersten Aufruf des Tages (oder nach ein paar Stunden Inaktivität) dauert es sehr lange, bis die Seite angezeigt wird. Nachfolgende Aufrufe sind schnell.
Die maximale Zeit waren 24 Sekunden, ansonsten meist im Bereich von 10-15 Sekunden, also viel zu lang.
Das zeigt sich auch in den Log-Dateien, hier der 24 Sekunden Aufruf:
87.149.201.0 - - [18/Jan/2019:12:02:09 +0100] "GET /home.html HTTP/1.1" (Rest gelöscht)
87.149.201.0 - - [18/Jan/2019:12:02:33 +0100] "GET /assets/contao/css/icons.min.css HTTP/1.1" (Rest gelöscht)
und dann die weiteren Abrufe
Server und lokaler Cache sind dabei deaktiviert.
Zwei Fragen dazu:
Hat jemand eine Idee, woran das liegen könnte?
Die Netzwerkanalyse von Firefox zeigt andere Zeiten an. Beim Aufruf der Seite mit aktiver Netzwerkanalyse passiert erst mal nichts und dann zeigt sie für "home" eine Ladezeit von zum Beispiel 3 Sekunden während es tatsächlich ab meinem Aufruf der Seite 12 Sekunden waren - da ist eine Lücke, die mir nicht angezeigt wird. Ich weiß nicht, ab wann die Netzwerkanalyse anfängt zu zählen - offensichtlich nicht ab meinem Aufruf (was ich eigentlich erwartet habe). Zählt sie ab einer Rückmeldung des Servers und der braucht so lange dafür??
Der Telefon-Support war nicht hilfreich, eine email an den Support ist bisher unbeantwortet (6 Tage her).
Ich habe bestehende Kunden-Verträge bei 1&1, wo auch Contao 4.4 installiert ist und die Reaktionszeiten kurz sind.
Könnte natürlich sein, dass nach dem Zusammenschluß mit Ionos irgendwas für Neuverträge geändert wurde.
Liste der Anhänge anzeigen (Anzahl: 1)
@MacKP: Werde ich morgen probieren - eine neue Datenbank angelegt und die Daten importiert habe ich.
Der Screenshot unten zeigt ein typisches Zeitverhalten. Da wurde "/" aufgerufen und dann passiert erst mal 15 Sekunden nichts. Alles andere danach (css, js, fonts, Bilder) wird schnell geladen.
@tab: Danke für den Hinweis. Die neue Datenbank werde ich morgen einsetzen.
Anhang 21849
(Der erste Aufruf im Screenshot ist von einer leeren Google Suchseite, die ich in dem Tab vorher geladen hatte - hat keinen Einfluss auf die Zeit.)
Liste der Anhänge anzeigen (Anzahl: 2)
Gestern Abend habe ich nach der Anleitung hier:
https://erdmann-freunde.de/logbuch/contao-4-4-umziehen/
eine neue Installation der Website in einem Altvertrag bei 1&1 vorgenommen.
Parallel dazu auf die gleiche Art eine neue Installation in einer Subdomain des neuen Vertrages. Sollten also beide identisch sein.
Und heute morgen dann die Ladezeiten für die html verglichen. Beim Altvertrag bekomme ich:
Anhang 21854
eine Ladezeit von 240ms.
Beim neuen Vertrag bekomme ich:
Anhang 21855
eine Ladezeit von 14712ms.
Auch die bestehende Installation hatte zeitnah eine Ladezeit von 13676ms.
Sieht für mich im Moment danach aus, als müsse Ionos bei dem neuen Vertrag erst die Domain bzw. die Dateien zugänglich machen - und zwar jeweils per Subdomain. Dann steht sie eine Zeitlang zur Verfügung und reagiert schnell. Wenn keine weiteren Anfragen kommen, wird sie wieder auf Eis gelegt.
Ich würde gerne feststellen, wie lange es bis zum Start der tatsächlichen PHP-Verarbeitung dauert.
Frage: app.php steht am Anfang des Aufrufs, oder? Und gibt es einen "Standardbefehl", den ich in app.php an den Anfang setzen kann, um einen Eintrag im Error-Log zu erzeugen. Dann könnte ich sehen, ab wann da tatsächlich eine Verarbeitung stattfindet.
Liste der Anhänge anzeigen (Anzahl: 2)
Ebefalls emense Geschwindigkeitsprobleme Contao 4.7.X und 4.8.X
Hallo zusammen,
ich bin froh, dass ich auf diesen Thread gestoßen bin da ich ebenfalls gleiches Problem bei mehreren Contao-Insallationen wie folgt habe:
Wir haben in letzter Zeit durch eine Vereinsaktion mehrere Contao-Webseiten für verschiedene Vereinen bei verschiedenen Hostern (1und1, Strato und All-Inkl) erstellt und online gebracht.
Nach einiger Zeit fiel uns und auch den Vereinen auf, dass die Webseiten (ALLE!) immer beim ersten Seitenaufruf sehr langsam laufen (bis zu 20 sec!!!) und danach ganz normal! Das ganze Spiel wiederholt sich dann nach 2-3h wieder und dann laufen die Seiten wieder mega schnell mit Latenzen von < 1 sec!!! Wir haben das zuerst nicht geglaubt, aber konnten es dann durch Serverlogs und Monitoring nachvollziehen! Speziell Logs habe ich mal im Anhang angehängt.
Es scheint wirklich so zu sein, dass Contao (oder gar Symfony) hier ein massives Problem hat bis es quasi "warmgelaufen" ist! Das fällt halt bei wenig frequentierten Seiten besonders auf!!!
Meine Frage: Es scheinen ja mehrere Personen das gleiche Problem zu haben! Gibt es hier schon was Neues?
Was habe ich herausgefunden:
- Deaktivieren Command-Scheduler bringt keiner Verbesserung
- Längste Antwortzeit bis zu 20 sec, wiederholt sich nach ca. 2-3h Inaktivität der Seite wieder, Schnitt ca. 12-16 sec
- Unabhängig vom Hoster oder Domain
- PHP-Interpreter schliesse ich aus (siehe Logs)
- Die lange Wartezeit vergeht immer beim "$kernel->handle" (siehe Codes oder Files Im Anhang)
Weiters habe ich noch sowohl einen guten wie auch einen schlechten Log der index.php, HTTPKernel.php und der EventDispatcher.php angehängt!
Denke dass ist ein allgemeines Problem und sollte gelöst werden! Ich wäre so froh da ich Contao liebe! :-)
Meint ihr wir sollten ein Ticket aufgeben? Bitte um euren Rat!
Danke und Grüße
Code:
[26.09.2019 08:27:44.772109] ---------- start ----------
[26.09.2019 08:27:46.214069] after autoload.php
[26.09.2019 08:27:47.480684] after kernelload
[26.09.2019 08:27:56.330057] after handle request
[26.09.2019 08:27:56.351218] ----- end -----
Code:
<?php
declare(strict_types=1);
use Contao\ManagerBundle\HttpKernel\ContaoKernel;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\TerminableInterface;
function xdebug($msg, $crlf = false) {
$now = DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''));
$tstamp = $now->format("[d.m.Y H:i:s.u]");
if($crlf) {
$tstamp = "\n".$tstamp;
}
file_put_contents('xdebug.log', $tstamp .' '. $msg."\n", FILE_APPEND);
}
xdebug("---------- start ----------", true);
@ini_set('display_errors', '0');
if (\in_array('phar', stream_get_wrappers(), true)) {
stream_wrapper_unregister('phar');
}
$loader = require __DIR__.'/../vendor/autoload.php';
xdebug("after autoload.php");
$request = Request::createFromGlobals();
$kernel = ContaoKernel::fromRequest(\dirname(__DIR__), $request);
xdebug("after kernelload");
$response = $kernel->handle($request);
$response->send();
xdebug("after handle request");
if ($kernel instanceof TerminableInterface) {
$kernel->terminate($request, $response);
}
xdebug("----- end -----");