繁体   English   中英

如何为挂起的网站调试nginx / php-fpm?

[英]How do I debug nginx/php-fpm for site that hangs?

我需要一些关于如何调试挂起的新服务器配置的提示。 这个站点本身就是Drupal的一个非常大的例子。 与每页加载45+ MB的PHP内存一样大,具有APC功能。

该站点本身使用nginx / php-fpm / apc在另一台服务器上运行。 我正在设置的新服务器有一个自定义的PHP 5.3版本。

nginx配置为侦听端口80,并将fastcgi请求传递给127.0.0.1:9000。 这有效。

在Drupal根目录中,我有一个带有phpinfo()的普通PHP文件; 在里面。 我可以直接加载这个PHP文件并确认PHP构建看起来不错。

没有nginx错误,但是php-fpm错误日志会在页面挂起时显示:

[2012年12月22日17:41:16]警告:[pool www] child 19760,脚本'/var/www/mysite/public_html/index.php'(请求:“GET /index.php”)执行速度太慢(5.068781秒),记录

除了这个错误,没有什么。

考虑到正常的PHP脚本加载正常,我正在寻找有关调试方法的建议,但加载Drupal应用程序(直接到index.php,甚至不尝试干净的URL)都会挂起。

当你在php-fpm错误日志中看到错误日志条目时,它实际上提供了一个缓慢的php进程的有用堆栈跟踪。

在php-fpm配置文件(例如/etc/php-fpm.d/www.conf)中,查看request_slowlog_timeoutslowlog设置。 第一个定义请求被视为“慢”的秒数,后者定义将写入堆栈跟踪的文件。

如果你看看php-fpm slowlog文件,你会更好地了解你的进程挂起的方法调用堆栈的确切位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM