Ich arbeite an der Optimierung meiner Site, und ich habe die langsamen MySQL-Abfragen seit einigen Tagen angemeldet, aber nachdem ich & gt; 260M-Abfragen durchging, protokollierte es nur sechs langsame Abfragen, und diese waren spezielle, die von ausgeführt wurden ich auf phpMyAdmin. Ich frage mich, ob es etwas gibt, um die Ausführungszeit der PHP-Seite langsam zu protokollieren, so dass ich bestimmte Seiten finden kann, die Ressourcen hoggen, anstatt spezifische Abfragen.
Erstens gibt es xdebug , das einen Profiler hat, aber ich würde das nicht auf einer Produktionsmaschine verwenden, da es einspritzt Code und bringt die Geschwindigkeit zu einem Crawl. Sehr gut für Testzwecke.
Wenn Sie Geschwindigkeiten in einer produktiven Umgebung messen möchten, würde ich nur die Messung manuell durchführen. microtime()
ist die Funktion für diese Dinge in PHP. Angenommen, Sie haben eine header.php und eine footer.php, die von all PHP-Skripten aufgerufen werden:
Wenn Sie FastCGI zum Ausführen Ihrer PHP-Skripte verwenden, können Sie den FastCGI Process Manager (FPM, php-fpm) verwenden, der auch ein sogenanntes "Slowlog" unterstützt.
Sie können es in der PHP-Konfiguration Ihres php-fpm aktivieren (für debian ist dies in /etc/php5/fpm/pool.d/www.conf
) mit den Konfigurationsoptionen: request_slowlog_timeout und slowlog.
request_slowlog_timeout
Das Zeitlimit für die Zustellung einer einzelnen Anfrage, nach der ein PHP-Backtrace in die "Slowlog" -Datei geschrieben wird. Ein Wert von "0" bedeutet 'Aus'. Verfügbare Einheiten: s (Sekunden) (Standard), m (Inuten), h (unsere) oder Tage). Standardwert: 0.
Langsamkeit
Die Protokolldatei für langsame Anfragen. Standardwert: # INSTALL_PREFIX # / log / php-fpm.log.slow.
von Ссылка
Tags und Links optimization php mysql