【问题标题】:Apache/PHP response time and execution timeApache/PHP 响应时间和执行时间
【发布时间】:2018-10-11 15:20:11
【问题描述】:

我在 Windows Server 2008 中有一个带有 Apache、PHP 和 MySQL 的 Web 服务器应用程序。该服务器还提供网页和图像。

最近我注意到一些上传图片的用户(150 个用户中有 8 个用户)从 Apache 获得的响应时间例如是 200 秒,但 PHP 脚本的执行时间是 2 秒。但其他用户不受影响,他们使用的是相同的脚本。

我知道这个时间是因为我将每个请求都记录在 MySQL 表中。

为了在执行结束前获取 apache 响应时间,我使用了

microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]

并获取我使用的 PHP 执行时间

microtime(true) - $GLOBALS["tiempo_inicio_ejecucion"];

其中 $GLOBALS["tiempo_inicio_ejecucion"] 是我在脚本执行开始时获得的另一个微时间。

服务器负载低,CPU 和 RAM 远未达到极限。

如果我尝试重现这种从我的电脑上传文件的行为,我无法重现它,它上传速度很快。

我想是一些网络问题,但我无法解决,或者可能是客户端的网络问题。

我怎么知道这里发生了什么?

提前致谢。

【问题讨论】:

  • 上传的文件大小不超过 2MB。
  • 到目前为止,为了重现体验,您进行了哪些测试?结果如何?你能提供上传中涉及的任何代码吗?
  • 我正在像用户一样使用应用程序来测试它,上传文件。代码很复杂,文件很多,但问题是在代码开始执行之前,花了很多时间上传或没有执行代码。
  • 这是昨天出现的问题,最近几个月运行良好,没有任何变化。
  • 您是否尝试过诸如使用低速连接上传?或者在有多个并发连接时进行任何基准测试来测试您的执行时间?您是否托管在共享主机上?你问过你的主人吗?您知道是谁遇到了问题吗?如果知道,您可以联系他们并与他们讨论吗?

标签: php apache wamp


【解决方案1】:

可能的建议:病毒检查器。

您的服务器可能安装了病毒检查器,它会在创建文件时自动扫描文件。这将扫描上传的文件。它可能资源不足或服务器优先级低,因此扫描上传文件需要很长时间。但是在扫描完成之前它不会将文件发布到 Web 服务器,因此服务器需要很长时间才能开始运行 PHP 代码。

我不知道这是否真的是你的问题,但我在其他 Windows Server 机器上看到了类似的问题。这可能是一个非常难以诊断的问题。

【讨论】:

  • 我考虑了一下。但是有些用户上传的文件不受此影响,所以这不可能是杀毒的东西,不是吗?
  • 是的,即使不一致也可能是这样的。它可能只针对某些文件启动,或者它可能在计时器上,并且某些上传恰好与它进行扫描的时间发生冲突(例如,它可能在扫描时锁定上传文件夹)。像这样的后台任务会以多种方式影响服务器性能,而病毒检查程序尤其不擅长。
  • 我已经检查了性能监视器中的所有进程,但没有类似的情况。只有 httpd、mysql、Windows 和网络进程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多