PHP entspricht dem langsamen Abfrageprotokoll von MySQL?

8

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.

    
James Simpson 04.06.2009, 07:17
quelle

5 Antworten

10

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:

%Vor%     
soulmerge 04.06.2009, 07:25
quelle
5

Was ist mit auto_prepend_file und auto_append_file, schrieb gerade einen Beitrag darüber Ссылка

    
xrado 14.07.2010 06:22
quelle
4

Sie könnten Ihre Skripte wie folgt in einen einfachen Timer einbinden:

%Vor%

Beachten Sie, dass zwei Funktionsausführungen und ein kleines bisschen Mathematik als Overhead hinzugefügt werden.

    
karim79 04.06.2009 07:20
quelle
1

Können Sie keine Abschaltfunktion registrieren, die das Ende des Timers aufruft? Ссылка Auf diese Weise müssen Sie den Timer nur starten, wenn Sie glauben, dass ein Problem vorliegt.

    
SeanJA 28.09.2009 04:05
quelle
1

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 Ссылка

Siehe auch: Ссылка und Ссылка

    
white_gecko 30.10.2013 08:35
quelle

Tags und Links