Wie wir alle wissen, verfügt MySQL über ein langsames Abfrageprotokoll. Anhand des langsamen Abfrageprotokolls können wir erkennen, welche SQL-Anweisungen Leistungsprobleme haben. Als guter Partner von MySQL verfügt PHP auch über eine solche Funktion. Wenn Sie PHP-FPM zum Verwalten von PHP verwenden, können Sie es über die folgenden Optionen aktivieren.
Vor PHP 5.3.3 lauten die Einstellungen wie folgt:
Nach PHP 5.3.3 Legen Sie die folgenden Einstellungen fest:
request_slowlog_timeout = 5s
slowlog = /usr/local/php/log/php-fpm-slowlog.log
Erklärung:
request_slowlog_timeout gibt an, wie lange Das Skript überschreitet die Zeit. Kann in der Protokolldatei aufgezeichnet werden
slowlog ist der Pfad der Protokolldatei
Nach dem Einschalten werden Informationen ähnlich der folgenden angezeigt, wenn ein Skript länger als die angegebene Zeit ausgeführt wird wird in die angegebene Protokolldatei geschrieben:
[19-Dec-2013 16:54:49] [pool www] pid 18575 script_filename = /home/web/htdocs/sandbox_canglong/test/tt.php [0x0000000003a00dc8] curl_exec() /home/web/htdocs/sandbox_canglong/test/tt.php:2 [0x0000000003a00cd0] exfilter_curl_get() /home/web/htdocs/sandbox_canglong/test/tt.php:6
Protokollbeschreibung:
script_filename ist die Eintragsdatei
curl_exec(): Dies bedeutet, dass die Ausführungszeit beim Ausführen dieser Methode überschritten wird.
exfilter_curl_get(): Gibt an, dass die Methode zum Aufrufen von curl_exec() exfilter_curl_get() ist.
Die Zahl nach dem Doppelpunkt in jeder Zeile ist die Zeilennummer.
Nach dem Einschalten gibt es auch relevante Datensätze in der Fehlerprotokolldatei. Wie folgt:
[19-Dec-2013 15:55:37] WARNING: [pool www] child 18575, script '/home/web/htdocs/sandbox_canglong/test/tt.php' (request: "GET /test/tt.php") executing too slow (1.006222 sec), logging [19-Dec-2013 15:55:37] NOTICE: child 18575 stopped for tracing [19-Dec-2013 15:55:37] NOTICE: about to trace 18575 [19-Dec-2013 15:55:37] NOTICE: finished trace of 18575