本文实例讲述了php性能分析之php-fpm慢执行日志slow log用法。分享给大家供大家参考,具体如下:

众所周知,mysql有slow query log,根据慢查询日志,我们可以知道那些sql语句有性能问题。作为mysql的好搭档,php也有这样的功能。如果你使用php-fpm来管理php的话,你可以通过如下选项开启。

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 = 5sslowlog = /usr/local/php/log/php-fpm-slowlog.log

说明:

request_slowlog_timeout是脚本超过多长时间 就可以记录到日志文件
slowlog 是日志文件的路径

开启后,如果有脚本执行超过指定的时间,就会在指定的日志文件中写入类似如下的信息:

[19-Dec-2013 16:54:49] [pool www] pid 18575
script_filename = /home/admin/web/htdocs/sandbox_canglong/test/tt.php
[0x0000000003a00dc8] curl_exec() /home/admin/web/htdocs/sandbox_canglong/test/tt.php:2
[0x0000000003a00cd0] exfilter_curl_get() /home/admin/web/htdocs/sandbox_canglong/test/tt.php:6

日志说明:

script_filename 是入口文件
curl_exec() : 说明是执行这个方法的时候超过执行时间的。
exfilter_curl_get() :说明调用curl_exec()的方法是exfilter_curl_get() 。

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

开启后,在错误日志文件中也有相关记录。如下:

[19-Dec-2013 15:55:37] WARNING: [pool www] child 18575, script '/home/admin/web/htdocs/sandbox_canglong/test/tt.php' (request: "GET /test/tt.php") executing too slow (1.006222 sec), logging
[19-Dec-2013 15:55:37] NOTICE: child 18575 stopped for tracing
[19-Dec-2013 15:55:37] NOTICE: about to trace 18575
[19-Dec-2013 15:55:37] NOTICE: finished trace of 18575

相关学习推荐:PHP编程从入门到精通

更多相关文章

  1. 学习PHP中使用Session配合Javascript实现文件上传进度条功能
  2. php如何实现网页常见文件上传功能
  3. php-fpm.conf配置文件中文及重要参数说明
  4. 直击PHP使用ajax的post方式下载excel文件简单示例
  5. PHP中如何使用TUS协议来实现大文件的断点续传
  6. Hyperf日志如何查看组件
  7. PHP协程框架Hyperf日志查看组件
  8. php实现断点续传大文件
  9. 一个查看xhprof数据文件的docker镜像

随机推荐

  1. 开源公司IronTec将推动PHP进驻Android平
  2. Android/iOS内嵌Unity开发示例
  3. Kotlin在AndroidStudio中的环境搭建以及
  4. 【Android自助餐】Handler消息机制完全解
  5. Android数据库高手秘籍(零)——前言[转载
  6. android 系统服务
  7. adb设备连接以及文件拷贝
  8. Android与HTML JavaScript交互
  9. Android 游戏开发的一些基础和经验
  10. android sqlite 介绍