当前位置:首页 > Web开发 > 正文

大概了解如下: 一、开启slow log方法: 如果你使用php-fpm来管理php的话

2024-03-31 Web开发

测试环境、预颁布环境颠末QA多番测试没有遇到问题,,但在一次上线过程中,在线上环境呈现20秒的响应超时,这个毫无疑问,环境问题。

尽管线上数据量大,可Mysql以不至于慢到20秒,而且发明每次技术都是20.01~20.04秒之间,相差不到一秒钟,mysql也不至于这么均匀,在好奇心下,运维大神共同查了一下Mysql慢盘问日志,发明没有超时的sql日志,那这有可能就是php这边呈现的问题,可一想,逻辑执行也总不能这么慢。想打日志一步步跟踪,这种方法有点慢。mysql 有慢盘问,同样咱php也有慢日志。

使用php slow方法确实找到了问题地址,截图如下:

 pconnect()原因导致,这个我固然清楚,是因为连接redis掉败导致。 因为是在新的处事器,所以连接不上核心项目的redis处事器,最终还是运维大神安置的证书解决。

解决了问题后,概略了解如下:

一、开启slow log要领:
如果你使用php-fpm来打点php的话,你可以通过如下要领开启:

首先打开 php-fpm.conf 配置文件。

vim /usr/local/php/etc/php-fpm.conf

PHP 5.3.3 之前设置如下:

<value name="request_slowlog_timeout">5s</value> < value name="slowlog">logs/php-fpm-slowlog.log</value>

PHP 5.3.3 之后设置以下如下:

request_slowlog_timeout = 5s slowlog = /usr/local/php/var/log/php-fpm-slowlog.log request_terminate_timeout = 10s

说明:
request_slowlog_timeout 是脚本赶过多永劫间,就可以记录到日志文件;
slowlog 是日志文件的存储路径;
request_terminate_timeout 将执行时间太长的进程直接终止;

二、slow log如何使用?
开启后,如果有脚本执行赶过指定的时间,就会在指定的日志文件中写入类似如上图所示,执行格局:pid  进程号

日志说明:

script_filename 是入口文件 curl_exec() : 说明是执行这个要领的时候赶过执行时间的。 exfilter_curl_get() :说明挪用curl_exec()的要领是exfilter_curl_get() 。

每行冒号后面的数字是行号。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31924.html