Web 服务器响应时间变化

Web 服务器响应时间变化

我有 Apache2 Web 服务器和小型 PHP 脚本

<?php
echo '1'

刷新页面时,Google Developers Tools 中的等待时间值可能从 24-26 毫秒到 300-350 毫秒不等,有时甚至超过 1 秒?

它取决于什么?如何控制该值在期望范围内或使其最小化?

答案1

延迟是否由于初始/第一个索引文件加载而导致?如果是这样,这可能是由于 DNS 解析造成的。

您可以在以下测试中剔除这个因素:

  1. 将服务器的 IP 添加到客户端的 /etc/hosts 中,这样就不会涉及 DNS 查询。再次运行测试,看看是否有更一致的结果。如果结果一致,则差异是由于 DNS 解析造成的。

  2. 如果切换到静态 IP 没有帮助,请尝试在使用 Web 浏览器测试页面时通过地址栏中的 IP 地址引用主机。万一 /etc/host 更改没有生效。

  3. 如果使用固定 IP 无法消除变化,请尝试从服务器本身进行本地测试,以排除网络变化。如果您仍然从本地主机测试中看到问题,那么问题就出在服务器上的应用程序堆栈上。:(

笔记:

在我的其中一台服务器(VPS托管)上运行类似的index.php测试,我看到以下内容:

index.php 的加载时间稳定在 25-35 毫秒左右。有些图标会尝试加载,这会导致整个页面的加载时间增加到 200-300 毫秒左右。

index.php 加载时间的屏幕截图

答案2

这是专为您的网站提供的专用 Apache 服务器吗?如果您的网站在商业托管服务上,那么您可能会遇到网络延迟问题。

您是否还使用像 mysql 这样的数据库后端?

如果不分析整个环境就很难隔离响应时间问题。

答案3

如果您使用的是 Chrome,请启动开发者工具,点击“网络”选项卡,然后点击刷新。然后将鼠标悬停在请求上,直到看到类似以下内容:

联系

这将告诉您延迟在哪里。您还可以在 PHP 脚本中添加以下内容,以查看脚本处理所需的时间:

<?php
$start = microtime(true);
echo '1';
echo 'took '. microtime(true) - $start .' seconds to complete';
?>

这应该可以排除 PHP 是罪魁祸首的可能性。

答案4

我建议你运行一系列简短的测试,并将它们绘制在电子表格中。前一两个应该会比较慢,因为它必须进入缓存,但其余的应该集中在平均值附近。眼睛和散点图是验证这一点的好工具。

如果结果没有聚类,则需要按照其他评论者建议的那样进行调查:运行服务的机器、网络和运行测试的机器上还发生了什么?

相关内容