最近从GOOGLE ananlytics 发现网站速度变慢了很多, 于是想到了PHP中的FPM慢日志功能。
好在 PHP-FPM 提供了慢执行日志,可以将执行比较慢的脚本的调用过程 dump 到日志中。
cd /etc/php5/fpm/pool.d/ vi www.conf
修改配置
; 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 = 1s ; The log file for slow requests ; Default Value: /usr/local/php/log/php-fpm.log.slow slowlog = /usr/local/php/log/php-fpm.log.slow
加上慢执行日志后,我们可以很容易从慢执行日志中看出问题所在,比如:
[13-May-2013 05:17:12] [pool www] pid 13557 script_filename = /opt/www/inkebook/index.php [0x000000000292e0f0] commit() /opt/www/inkebook/includes/database/mysql/database.inc:166 [0x000000000292de88] popCommittableTransactions() /opt/www/inkebook/includes/database/database.inc:1128 [0x000000000292dcf0] popTransaction() /opt/www/inkebook/includes/database/database.inc:1905 [0x00007fffe78cc460] __destruct() unknown:0 [0x000000000292c690] execute() /opt/www/inkebook/modules/statistics/statistics.module:73 [0x00007fffe78cc900] statistics_exit() unknown:0 [0x000000000292c208] call_user_func_array() /opt/www/inkebook/includes/module.inc:857 [0x000000000292bf10] module_invoke_all() /opt/www/inkebook/includes/common.inc:2688 [0x000000000292ade0] drupal_page_footer() /opt/www/inkebook/includes/common.inc:2676 [0x000000000292aa28] drupal_deliver_html_page() /opt/www/inkebook/includes/common.inc:2560 [0x000000000292a378] drupal_deliver_page() /opt/www/inkebook/includes/menu.inc:532 [0x000000000292a198] menu_execute_active_handler() /opt/www/inkebook/index.php:21
再进行进一步的程序分析,就更具方向性了。
欢迎访问下面网站, 下载电子书
http://www.inkebook.com/
相关推荐
本文实例讲述了php性能分析之php-fpm慢执行日志slow log用法。分享给大家供大家参考,具体如下: 众所周知,mysql有slow query log,根据慢查询...<value name=slowlog>logs/php-fpm-slowlog.log</value> PHP 5.3.3 之
- `slowlog`: 慢查询日志文件路径,记录执行时间超过`request_slowlog_timeout`的请求。 4. **内存管理** - `pm.max_requests`: 每个子进程处理的最大请求数,达到后会自动重启,防止内存泄漏。 - `memory_limit...
12. PHP-FPM配置中可以设置request_slowlog_timeout和slowlog,用于记录执行时间较长的请求日志。这有助于识别性能瓶颈。 13. PHP-FPM中的fastcgi_finish_request()函数允许工作进程完成响应发送后继续执行脚本中的...
- 可以使用`sort`、`uniq`等命令对慢日志进行统计分析,找出性能瓶颈所在。 #### 五、结语 通过对Nginx+php-fpm组合的优化,可以显著提升Web应用程序的响应速度和稳定性。实践中,应根据实际应用场景灵活调整相关...
`request_slowlog_timeout`配置项控制何时将慢速请求的日志写入`slowlog`。开启此功能可能导致大量日志记录,特别是当请求处理时间较长时,可能会引起502错误。例如,如果将`request_slowlog_timeout`设置为10秒,...
开启 PHP-FPM 状态统计有助于监控和分析 PHP 应用程序的性能,通过观察这些指标,你可以调整 FPM 配置,优化资源使用,提高服务的稳定性和响应速度。了解每个参数的含义并根据实际需求进行调整,是管理高效 PHP ...
15. **request_slowlog_timeout**:当请求时间超过这个值,PHP-FPM会将详细的调用堆栈信息写入慢日志,用于分析性能瓶颈。 通过正确配置这些选项,你可以根据实际需求优化PHP-FPM的工作效率,提高服务器性能,并...
通常,慢日志路径可以在PHP-FPM的配置文件(如`php-fpm.d/www.conf`)中找到,变量`slowlog`指定了慢日志的路径。 2. 克隆或下载`phpfpm-analyze-master`压缩包,并解压到本地目录。 3. 运行`python ...
很多站长转到nginx+php-fpm后,饱受500,502问题困扰。当nginx收到如上错误码时,可以确定后端php-fpm解析php出了某种问题,比如... dumped to the ‘slowlog’ file. A value of ‘0s’ means ‘off’.; Available uni
18. request_slowlog_timeout参数:用于记录处理时间过长的请求信息,有助于识别和优化慢查询。 这些参数的合理配置对于提升PHP-FPM的性能至关重要。在进行参数调整时,建议先在测试环境中进行,观察各项指标的变化...
最后,配置文件中通常还会指定slowlog和request_slowlog_timeout参数,用于记录处理缓慢的请求及其超时时间。注意,PHP-FPM进程所属的用户和用户组必须具有相应文件的写权限,否则可能会导致配置文件无法正确写入。 ...
- **调试技巧**: 如果遇到频繁的 502 错误,可以考虑增加 `request_terminate_timeout` 的值,或者查看慢日志 (`slowlog`) 以找出问题所在。 通过以上的详细解析,我们可以看出 PHP-FPM 的配置相当灵活,可以根据...
2. **日志分析**:定期查看`error_log`和`slowlog`,分析错误和性能问题。 3. **工具监控**:利用工具如New Relic、XHProf、Prometheus等,对FPM性能进行监控和分析。 六、安全注意事项 1. **权限控制**:确保FPM...
nginx+php-fpm倒是好查,他有一个slowlog,可以快速的定位到出现故障的php代码位置,使用xdebug来查问题太复杂。写mod_log_slow的灵感来源于mysql的slowlog.以下内容翻译了官方的. 项目地址:...
例如,通过PHP-FPM SlowLog找出的慢日志,结合APM的深入分析,可以找到并修复导致性能下降的具体函数或代码段。 总结,PHP应用性能管理是通过理解PHP的执行机制和使用APM工具,对应用进行深度监控,以提升整体性能...