Heim  >  Artikel  >  Backend-Entwicklung  >  Informationen zu Einstellungen und Anweisungen für langsame Abfragen von php-fpm7.0

Informationen zu Einstellungen und Anweisungen für langsame Abfragen von php-fpm7.0

藏色散人
藏色散人nach vorne
2021-04-16 09:24:361963Durchsuche

Dieser Artikel stellt Ihnen die langsamen Abfrageeinstellungen und Anweisungen vor. Ich hoffe, dass er für alle hilfreich ist.

Empfohlenes Lernen: „PHP-Video-Tutorial

Umgebungsbeschreibung

root@ubuntu:/home/tb# cat /etc/issue
Ubuntu 16.04.2 LTS \n \l

root@ubuntu:/home/tb# php -v
PHP 7.0.15-0ubuntu0.16.04.4 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.15-0ubuntu0.16.04.4, Copyright (c) 1999-2017, by Zend Technologies

Pfad der PHP-FPM-Konfiguration anzeigen

root@ubuntu:/home/tb# ps -ef |grep fpm
root      1642     1  0 10:17 ?        00:00:01 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data  3685  1642  0 17:14 ?        00:00:04 php-fpm: pool www
www-data  3686  1642  0 17:14 ?        00:00:03 php-fpm: pool www
www-data  3808  1642  0 17:43 ?        00:00:03 php-fpm: pool www
root      3930  2208  0 18:10 pts/0    00:00:00 grep --color=auto fpm
root@ubuntu:/home/tb#

php- fpm Die letzte Zeile von .confphp-fpm.conf的最后一行为

include=/etc/php/7.0/fpm/pool.d/*.conf

那我们去那里改www.conf,查看关于慢查询的介绍

314 ; The log file for slow requests
315 ; Default Value: not set
316 ; Note: slowlog is mandatory if request_slowlog_timeout is set
317 ;slowlog = log/$pool.log.slow
318
319 ; The timeout for serving a single request after which a PHP backtrace will be
320 ; dumped to the 'slowlog' file. A value of '0s' means 'off'.
321 ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
322 ; Default Value: 0
323 ;request_slowlog_timeout = 0

添加两行配置

slowlog=/var/log/php7.0/fpm/slow.log
request_slowlog_timeout=1s

重启fpm,同时注意目录权限等一般问题

service php7.0-fpm reload

查看log回显结果

[03-Jan-2018 18:48:53]  [pool www] pid 4934
script_filename = /usr/share/nginx/ testapp/index.php
[0x00007fb626213520] session_start() /usr/share/nginx/ testapp/app/models/user_model.php:11
[0x00007fb6262134a0] __construct() /usr/share/nginx/ci_2.2.0/core/Loader.php:303
[0x00007fb626213390] model() /usr/share/nginx/ testapp/app/core/my_Controller.php:39
[0x00007fb6262132e0] __construct() /usr/share/nginx/ testapp/app/controllers/home.php:8
[0x00007fb626213270] __construct() /usr/share/nginx/ci_2.2.0/core/CodeIgniter.php:308
[0x00007fb6262130e0] [INCLUDE_OR_EVAL]() /usr/share/nginx/ testapp/index.php:325

[03-Jan-2018 18:48:53]  [pool www] pid 4931
script_filename = /usr/share/nginx/ testapp/index.php
[0x00007fb626213520] session_start() /usr/share/nginx/ testapp/app/models/user_model.php:11
[0x00007fb6262134a0] __construct() /usr/share/nginx/ci_2.2.0/core/Loader.php:303
[0x00007fb626213390] model() /usr/share/nginx/ testapp/app/core/my_Controller.php:39
[0x00007fb6262132e0] __construct() /usr/share/nginx/ testapp/app/controllers/home.php:8
[0x00007fb626213270] __construct() /usr/share/nginx/ci_2.2.0/core/CodeIgniter.php:308
[0x00007fb6262130e0] [INCLUDE_OR_EVAL]() /usr/share/nginx/ testapp/index.php:325

关于log的说明

[03-Jan-2018 18:48:53]  [pool www] pid 4931

这个没啥解释,时间进程id

script_filename = /usr/share/nginx/ testapp/index.php

执行脚本名称,php web应用都为单入口

[0x00007fb626213520] session_start() /usr/share/nginx/ testapp/app/models/user_model.php:11

这个第三行比较重要:是堆栈顶部信息(is the top of the stack trace),他说明指出了超出了阈值的当前执行的方法的函数调用是哪个,以及具体的文件及代码行数
剩下的其他部分就是 调用的顺序(从下往上,最终导致变慢超时的结果)

其他说明

如果发现第三行是以类似curl_exec(),比如:这一般是网络io占用了时间,如果是必须请求第三方,那么。。忍吧。

[0x00007fb6262136f0] curl_exec() /usr/share/nginx/

同样,如果有mysql_query之类的,也是由于sqlrrreee

Dann gehen wir dorthin und ändern www.conf und sehen uns die Einführung zur langsamen Abfrage an
rrreee

Fügen Sie zwei Konfigurationszeilen hinzu

rrreee

Starten Sie fpm neu , und achten Sie auf allgemeine Probleme wie Verzeichnisberechtigungen Alle einzelnen Einträge

rrreee

In diesem Kapitel sind drei Zeilen wichtiger: Sie stehen am Anfang des Stack-Trace. Sie geben an, welcher Funktionsaufruf der aktuell ausgeführten Methode den Schwellenwert überschreitet, sowie die spezifische Datei und die Anzahl der Codezeilen. Der Rest ist Teil davon ist die Reihenfolge der Aufrufe (von unten nach oben, was schließlich zu einer Verlangsamung und einer Zeitüberschreitung führt)

Andere Anweisungen

Wenn Sie feststellen, dass die dritte Zeile mit etwas beginnt wie curl_exec() , Zum Beispiel: Dies liegt normalerweise daran, dass Netzwerk-IO Zeit beansprucht, wenn ein Dritter angefordert werden muss. . Hab Geduld damit.
rrreee

In ähnlicher Weise wird mysql_query und dergleichen auch durch eine langsame sql-Abfrage verursacht🎜🎜🎜Referenzlink🎜🎜php-fpm-Konfiguration: https:/ /www .php.net/manual/en/install.fpm.configuration.php🎜🎜how-to-read-the-php-slow-request-log: https://serverpilot.io/docs/how-to- read-the-php-slow-request-log/🎜🎜🎜🎜🎜🎜

Das obige ist der detaillierte Inhalt vonInformationen zu Einstellungen und Anweisungen für langsame Abfragen von php-fpm7.0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen