5

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

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

nginx 配置为监听 80 端口,并将 fastcgi 请求传递给 127.0.0.1:9000。这行得通。

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

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

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

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

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

4

1 回答 1

5

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

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

如果您查看 php-fpm 慢日志文件,您将更好地了解您的进程在方法调用堆栈中的确切位置。

于 2012-12-29T14:19:26.327 回答