转载自

http://www.hiceon.com/topic/how-to-enable-slow-logging-configuration-via-php-fpm-to-detect-slower-php-script-execution/

  • php-fpm慢日志slowlog设置可以让开发者很好的查找哪些php进程速度过慢而导致的网站问题,让开发者方便的找到问题的所在。该方法同样适用于排查nginx的500、502问题根源,当nginx收到如上错误码时,可以确定后端php-fpm解析php出了某种问题,比如,执行错误,执行超时。

  • php-fpm.conf的配置文件中有一个参数request_slowlog_timeout是这样描述的:

; The timeout for serving a single request after which a PHP backtrace will be
; dumped to the 'slowlog' file. A value of '0s' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
; request_slowlog_timeout = 0
  • request_slowlog_timeout设为一个具体秒时request_slowlog_timeout =5,表示如果哪个脚本执行时间大于5秒,会记录这个脚本到慢日志文件中。

  • request_slowlog_timeout =0表示关闭慢日志输出。

  • 慢日志文件位置默认在php的安装目录下的log文件夹中,可以通过修改slowlog = log/$pool.log.slow参数来指定。php-fpm慢日志的例子,慢日志会记录下进程号,脚本名称,具体哪个文件哪行代码的哪个函数执行时间过长。

[21-Nov-2013 14:30:38] [pool www] pid 11877
script_filename = /usr/local/nginx/html/www.quancha.cn/www/fyzb.php
[0xb70fb88c] file_get_contents() /usr/local/nginx/html/www.quancha.cn/www/fyzb.php:2
[21-Nov-2013 14:15:23] ERROR: [pool www] 'slowlog' must be specified for use with 'request_slowlog_timeout'
  • request_slowlog_timeout 和 slowlog 需要同时设置,开启 request_slowlog_timeout 的同时需要开启 slowlog

[21-Nov-2013 14:16:27] ERROR: Unable to create or open slowlog(/usr/local/php/log/www.log.slow):
No such file or directory (2)
  • 慢日志路径需要手动创建,具体开启php-fpm慢日志步骤:

cd /usr/local/phpvi etc/php-fpm.conf
去掉request_slowlog_timeout 、slowlog的前缀分号';',设置request_slowlog_timeout =5;
:wq
保存退出
创建慢日志目录
mkdir log
重启php-fpm
kill -INT `cat var/run/php-fpm.pid
sbin/php-fpm
  • 【实际操作】

1. cd /usr/local/php5/
2. sed -i.$(date +%F) '/;slowlog/s/;slowlog/slowlog/g' etc/php-fpm.conf
3. sed -i '/;request_slowlog_timeout = 0/s/;request_slowlog_timeout = 0/request_slowlog_timeout = 5/g' etc/php-fpm.conf
4. mkdir log
5. 测试配置文件# /usr/local/php5/sbin/php-fpm -t[29-Sep-2015 18:58:35] NOTICE: configuration file /usr/local/php5/etc/php-fpm.conf tes   t is successful
6. 平滑重启#/etc/init.d/php-fpm reloadReload service php-fpm  done
7. 查看日志[root@movie php5]# ll log/total 0-rw------- 1 root root 0 Sep 29 18:35 www.log.slow
  • 其中慢查询日志的文件名是由slowlog = log/$pool.log.slow指定的。

默认文件名为$pool.log.slow,而变量pool可在php-fpm配置文件中指定。

119 ; Pool Definitions ;

120 ;;;;;;;;;;;;;;;;;;;;

121

122 ; Multiple pools of child processes may be started with different listening

123 ; ports and different management options.  The name of the pool will be

124 ; used in logs and stats. There is no limitation on the number of pools which

125 ; FPM can handle. Your system will tell you anyway :)

126

127 ; Start a new pool named 'www'.

128 ; the variable $pool can we used in any directive and will be replaced by the

129 ; pool name ('www' here)

130 [www]

将130行的的[www]更改为[test],平滑重启后,即可看到poolname变为test,产生新的日志文件test.log.slow

[root@movie php5]# ll log/

total 0

-rw------- 1 root root 0 Sep 29 19:24 test.log.slow

-rw------- 1 root root 0 Sep 29 18:35 www.log.slow

转载于:https://blog.51cto.com/xoyabc/1699270

php-fpm中启用慢日志配置相关推荐

  1. PHP性能调优---php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)

    虽然通过nginx accesslog可以记录用户访问某个接口或者网页所消耗的时间,但是不能清晰地追踪到具体哪个位置或者说函数慢,所以通过php-fpm慢日志,slowlog设置可以让我们很好的看见哪 ...

  2. HTTPS协议在Tomcat中启用的配置

    本文将讲解HTTPS协议在Tomcat中启用是如何配置的. 概念简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被 ...

  3. 基于.NetCore3.1系列 —— 日志记录之日志配置揭秘

    前言 在项目的开发维护阶段,有时候我们关注的问题不仅仅在于功能的实现,甚至需要关注系统发布上线后遇到的问题能否及时的查找并解决.所以我们需要有一个好的解决方案来及时的定位错误的根源并做出正确及时的修复 ...

  4. MongoDB审计日志配置及导入数据库

    利用MongoDB自带的审计功能可以记录对MongoDB数据库的每个操作,但它自带的审计功能只能把日志记录到console.syslog或者file中,不利于日常查看统计,这里讲一下审计日志的配置及导 ...

  5. spring boot项目中使用logback日志详解

    1. spring boot中的默认日志 SpringBoot为Java Util Logging,Log4J2和Logback提供了默认配置.SpringBoot默认配置日志输出到控制台,同时还提供 ...

  6. python报错输出到日志_Python 日志配置总结

    日志是程序调试的利器,通过日志来解析获取数据,线上问题通过日志分析和定位等,用途多种多样.Python 作为当前常用的一门开发语言,国内很多开发者对其的使用极其粗糙,写法较为随意,受开发者本身熟悉的语 ...

  7. Springboot日志配置探索(主要看logback)(二)

    这篇博客主要是讲在Springboot中扩展的日志框架的配置,也是主要讲logback 8 继续看文档,这里讲到: springboot里面还有几个日志系统框架可以选择使用,你可以通过在classpa ...

  8. java spring 配置log_spring-logger spring中日志配置

    默认日志 Logback: 默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台.在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了. 从上图可 ...

  9. SpringBoot内部配置:“application.properties配置”和”使用XML配置”,读取属性文件中的内容,日志配置,Profile配置(学习:SpringBoot实战)

    1 SpringBoot内部配置 1.1.修改端口和应用上下文 server.port=9090 server.context-path=/helloboot Spring Boot也可以使用yml进 ...

最新文章

  1. html标题电脑快速输入,快速把纸上文字输入到电脑中的技巧
  2. 55. Jump Game
  3. 利剑无意之面试题(一)
  4. Atitit it行业图像处理行业软件行业感到到迷茫的三大原因和解决方案
  5. html悬浮窗口退出,网页中可关闭的漂浮窗口实现
  6. 优酷视频如何在手机进行安全设置?
  7. python eval简介
  8. 【程序员面试干货】资深面试官告诉你:测试工程师面试要注意什么?
  9. Moment.js常见用法总结 1
  10. dskinlite自适应dpi
  11. 市监总局对橙心优选等五家社区团购不正当价格行为作出行政处罚
  12. android for 语句,Android中消息循环
  13. 屏蔽网页所有弹出广告的神器工具!Adblock插件
  14. 百度竞价新人提升赚钱概率的技巧方法
  15. .net core word转pdf_Enolsoft PDF to Word with OCR for Mac(PDF转Word软件)
  16. 前端开发者应该知道的 CSS 小技巧
  17. 2022考研数学学习资源分享203G视频之汤家凤数学网盘
  18. SysML实践指南第二版(中文翻译:刘亚龙)第16章 蒸馏器案例
  19. [摘]毕业论文之感谢篇
  20. Java中的CST-UTC时间格式相互转换

热门文章

  1. Ie6/ie7 不支持 JSON
  2. 中文字符串提交乱码的解决方法
  3. 获取设置本地当前默认打印机
  4. 小时和分钟的正则表达式
  5. hdu4971 流-最大权闭包
  6. 【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )
  7. 【嵌入式开发】 ARM 关闭 MMU ( 存储体系 | I/D-Cache | MMU | CP15 寄存器 | C1 控制寄存器 | C7 寄存器 | 关闭 MMU )
  8. 通过sort()方法实现升序和降序排列
  9. 为什么微信内无法分享转发网址,详谈微信网址防屏蔽的办法
  10. javascript DOM 编程艺术 札记2 平稳退化