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 -----");