如何减少服务器"等待"时间?

aln*_*fie 34 javascript apache performance networking

我正在尝试优化我的网站的速度,我正在使用pingdom.com上的伟大工具.现在,加载页面所需时间的50%以上是"等待"时间,如下面的屏幕截图所示.我该怎么做才能减少这个?此外,这个数字有多典型?这方面有基准吗?谢谢!

高服务器等待时间

编辑: 好的..让我澄清一些事情.没有服务器端脚本或数据库调用正在进行.只是HTML,CSS,JS和图像.我已经做了一些事情,比如将js推到body标签的末尾以获得并行下载.我知道main.html和templates.html通过在js.js下载后同步完成来增加整体等待时间,这不是问题.我很惊讶每个请求有多少"等待"时间.服务器距离会影响这个吗?如果在共享服务器上,这会影响等待时间吗?是否有任何悬而未决的成果可以解决这些问题?

在此输入图像描述

小智 53

在Apache的情况下,最常见的原因是使用DNS Reversal Lookup.这意味着服务器每次发出请求时都会尝试确定您的计算机名称.这可能需要几秒钟,这就解释了为什么你有一个很长的等待时间然后非常快速的负载,因为问题不在于带宽.

显而易见的解决方案是在/etc/httpd/conf/httpd.conf中禁用hostnamelookup

HostnameLookups Off
Run Code Online (Sandbox Code Playgroud)

但是......这通常是不够的.事实是,在许多情况下,即使您已禁用主机名查找,apache仍会执行反转查找,因此您需要仔细查看apache配置的每一行.特别是,最常见的原因之一是LOGS.默认情况下,在许多red hat-c​​entos安装中,日志格式包括%h代表"hostname",并且需要apache进行反向查找.你可以在这里看到:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
Run Code Online (Sandbox Code Playgroud)

您应该更改%h的%h来解决此问题.

  • “HostnameLookups”已关闭,但“LogFormat”才是罪魁祸首。通过将 %h 更改为 %a,我获得了 50% 的改进。 (2认同)
  • 我面临同样的问题.我正在使用wordpress,网站托管在共享主机上.我无法找到文件的位置,我可以在哪里进行更改.任何建议都是最受欢迎的. (2认同)
  • 从 %h 更改为 %a 后没有做任何更改 (2认同)

Tec*_*ion -1

这是服务器的问题...根据 Pingdom 的说法,“Web 浏览器正在等待来自服务器的数据”定义了“等待”时间。

您无法从 JavaScript 或代码端执行太多操作来解决此问题。

  • 这不是等待时间。 (3认同)