Maison  >  Article  >  développement back-end  >  Paramètres et instructions de requête lente php-fpm7.0

Paramètres et instructions de requête lente php-fpm7.0

藏色散人
藏色散人avant
2019-11-12 14:20:162090parcourir

Description de l'environnement

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

Voir le chemin de configuration de php-fpm

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#

La dernière ligne de php-fpm.conf

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

Ensuite allez ici, changez www.conf et vérifiez l'introduction sur la requête lente

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

Ajoutez deux lignes de configuration

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

Redémarrez fpm et faites attention aux problèmes généraux tels que le répertoire autorisations

service php7.0-fpm reload

Voir les résultats de l'écho du journal

[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

Explication sur le journal

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

Il n'y a aucune explication à cela, l'identifiant du processus temporel

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

Nom du script d'exécution, les applications web PHP sont toutes à entrée unique

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

Cette troisième ligne est plus importante : c'est le haut de la trace de la pile, qui indique que le le seuil a été dépassé. Quel appel de fonction est la méthode actuellement exécutée, ainsi que le fichier spécifique et le nombre de lignes de code

Le reste est l'ordre des appels (de bas en haut, conduisant éventuellement à un ralentissement et timeout)

Autres instructions

Si vous trouvez que la troisième ligne est similaire à curl_exec(), par exemple : c'est généralement l'io réseau qui prend du temps, si il faut alors faire appel à un tiers. . Supportez-le.

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

De même, s'il y a mysql_query et autres, cela est également dû à une requête SQL lente

Recommandations associées : "Tutoriel PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer