【问题标题】:Detecting Apache worker delays in PHP检测 PHP 中的 Apache 工作程序延迟
【发布时间】:2016-03-16 19:34:12
【问题描述】:

我们有一系列的 Apache 服务器不堪重负,并且在服务之前将请求排队等待一段时间。

当我们调整它时,我们意识到我们的 PHP 日志无法查看延迟的时间......是否有 apache 为每个线程输出的 env 变量,或者可以判断延迟多长时间的 php 函数请求不是来自 PHP 的初始化,而是 Apache 第一次打开连接的时候?

【问题讨论】:

  • 您将寻找基于服务器的东西,例如 nagios。

标签: php apache lamp


【解决方案1】:

据我所知,PHP 中没有任何可用的东西。根据您的服务器不堪重负的方式,Apache 甚至可能无法提供此信息:

如果 Apache 的工作人员用完了,客户端会简单地坐下来等待 TCP 连接建立。 Apache 不会知道另一个客户端正在等待,因为所有工作人员当前都在忙于为其他客户端提供服务。

PHP 是了解客户端请求的最后一个组件,因此仅使用服务器数据是不可能解决那里的问题,或者至少试图找出请求被严重延迟的。

您也许可以在请求中添加客户端时间戳 - 但是,客户端的时钟不需要与服务器时钟同步,如果服务器已经有延迟,那么同步它们将是一个问题。添加更多请求来报告问题也会增加服务器的负载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    相关资源
    最近更新 更多