• php-fpm开启慢日志查询


    虽然可以通过 nginx 的 accesslog 日志查询到用户访问接口或网页消耗的时间,但是不能清晰的追踪到哪个文件或函数慢,

    可以通过 php-fpm 慢日志查询检测 php 脚本运行状态,哪些 php 进程比较慢,有哪些错误日志

          1 先查找到配置文件存放的位置

    1
    find / -name php-fpm.conf

          打开配置文件看慢日志查询是否开启,或者开启的慢日志存放路径

          2 如果没有开启慢日志查询,先开启

             默认情况下 request_slowlog_timeout 的值为 0,表示关闭慢日志输出,所以开启慢日志查询需要将 request_slowlog_timeout

    设置成大于 0 的值,表示 php 脚本执行时间超过 request_slowlog_timeout 设置的时间将会被记录到 slowlog 中,然后查看慢日志对

    脚本进行对应的处理

            request_slowlog_timeout 和 slowlog 需要同时开启,slowlog 表示慢日志存储的位置,我们可以自定义也可以直接使用默认的位置

    默认的位置一般在 /data/php/log/php-fpm.log ,同时需要将 request_slowlog_timeout、slowlog 前面的分号去掉才算是开启,然后重启

    php-fpm

           3 观察慢日志信息

             开启后,如果有脚本执行时间超过设置时间,会被记录到指定的日志文件中,格式如下(摘抄来自网上):

    1
    2
    3
    4
    [19-Dec-2016 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

      script_filename 表示入口文件,curl_exec() 表示执行这个函数时超时,exfilter_curl_get() 表示是这个方法调用的 curl_exec() 方法,每行冒号之后

    都会有数字表示行号

           开启后,对错误日志也有相关记录,如下


    1.找到php-fpm.conf文件

    2.去掉request_slowlog_timeout前面的分号,并设置时间。如:request_slowlog_timeout=5表示超过5秒的

    慢日志文件位置默认在php的安装目录下的log文件夹中,可以通过修改slowlog = log/$pool.log.slow参数来指定。

    3.

    php-fpm慢日志的例子,慢日志会记录下进程号,脚本名称,具体哪个文件哪行代码的哪个函数执行时间过长。

        request_slowlog_timeout 和 slowlog需要同时设置,开启request_slowlog_timeout的同时需要开启 slowlog

        慢日志路径需要手动创建 (slowlog)

    4.重启php-fpm

  • 相关阅读:
    在列表中添加序号列
    在C#中使用正则表达式
    Git
    Linux 配置Java环境
    讯飞语义理解 JAVA SDK
    分屏显示
    Gdiplus
    重启进程
    MFC 常用功能属性
    MFC 打印
  • 原文地址:https://www.cnblogs.com/zoutong/p/13523945.html
Copyright © 2020-2023  润新知