Web服务器响应时间的可变性

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

<?php echo '1' 

刷新页面时,Google Developers Tools中的等待时间值可能在24-26毫秒到300-350之间变化,甚至超过1秒。

它依赖于什么? 如何将这个值控制在理想的范围内或者最小化?

是由于初始/预先索引文件加载的延迟吗? 如果是这样,这可能是由于DNSparsing。

您可以在以下testing中取出这个因子:

  1. 将服务器的IP添加到客户端的/ etc / hosts中,以便不涉及DNS查询。 再次运行testing,看看你是否有更一致的结果。 如果结果一致,则可变性是由于DNSparsing。

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

  3. 如果使用固定IP不能清除可变性,则尝试从服务器本身进行本地testing,以排除networking可变性。 如果您仍然从本地主机testing中看到问题,那么问题出在服务器上的应用程序堆栈中。 🙁

注意:

对我的一个服务器(VPS托pipe)运行一个类似的index.phptesting,我看到以下内容:

index.php持续加载大约25-35ms。 有一些图标试图加载,这将总页面加载时间推到200-300ms左右。

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

这是一个专门的Apache服务器只为您的网站? 如果您有一个商业托pipe服务的网站,那么您可能会看到networking延迟问题。

你也使用数据库后端像MySQL?

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

如果您使用的是Chrome,请启动开发者工具,点击“networking”标签,然后点击刷新。 然后将鼠标hover在请求上,直到看到如下所示的内容:

连接

这将告诉你在哪里举行。 在你的PHP脚本中,你也可以添加这个来查看脚本需要处理多长时间:

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

这应该排除PHP作为罪魁祸首。

我build议你进行一系列简短的testing,并将它们绘制在电子表格中。 第一个或第二个应该慢一点,因为它必须进入caching,但其余的应该集中在一个平均值左右。 眼睛和散点图是validation这一点的好工具。

如果结果不集中,则需要像其他评论员所build议的那样进行调查:运行服务的计算机,运行testing的计算机和networking上还发生了什么?