将网络延迟从500毫秒减少到60-100毫秒的策略

Qui*_*Par 5 browser performance networking nginx

我正在构建自动完成功能,并意识到客户端和服务器之间的时间过长(在450-700ms范围内)

自动完成响应时间

我的第一站是检查这是否是服务器延迟的结果.

在此输入图像描述

但正如您所看到的,这些Nginx日志几乎总是0.001毫秒(请求时间是最后一列).这几乎不是引起关注的原因.

因此,很明显我在服务器和客户端之间失去了时间.我的基准测试是Google Instant的响应时间.这几乎经常在30-40毫秒的范围内.幅度较低.

在此输入图像描述

虽然很容易说谷歌拥有以这种速度提供的巨大基础设施能力,但我想让自己去了解一下那个不是那个级别的人是否有可能.如果不是60毫秒,我想减少100-150毫秒.

以下是我设法学习的一些策略.

  1. 启用httpd slowstart和initcwnd
  2. 如果您使用https,请确保SPDY
  3. 确保结果是http压缩的
  4. 等等.

我可以在这做什么其他事情

例如

  • 是否有持久连接帮助?
  • 我应该大幅减少响应大小吗?

编辑: 这是ping和traceroute号码.该网站通过Fremont Linode机器的cloudflare提供.

    mymachine-Mac:c name$ ping site.com
    PING site.com (160.158.244.92): 56 data bytes
    64 bytes from 160.158.244.92: icmp_seq=0 ttl=58 time=95.557 ms
    64 bytes from 160.158.244.92: icmp_seq=1 ttl=58 time=103.569 ms
    64 bytes from 160.158.244.92: icmp_seq=2 ttl=58 time=95.679 ms
    ^C  
    --- site.com ping statistics --- 
    3 packets transmitted, 3 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 95.557/98.268/103.569/3.748 ms
    mymachine-Mac:c name$ traceroute site.com
    traceroute: Warning: site.com has multiple addresses; using 160.158.244.92
    traceroute to site.com (160.158.244.92), 64 hops max, 52 byte packets
     1  192.168.1.1 (192.168.1.1)  2.393 ms  1.159 ms  1.042 ms
     2  172.16.70.1 (172.16.70.1)  22.796 ms  64.531 ms  26.093 ms
     3  abts-kk-static-ilp-241.11.181.122.airtel.in (122.181.11.241)  28.483 ms  21.450 ms  25.255 ms
     4  aes-static-005.99.22.125.airtel.in (125.22.99.5)  30.558 ms  30.448 ms  40.344 ms
     5  182.79.245.62 (182.79.245.62)  75.568 ms  101.446 ms  68.659 ms
     6  13335.sgw.equinix.com (202.79.197.132)  84.201 ms  65.092 ms  56.111 ms
     7  160.158.244.92 (160.158.244.92)  66.352 ms  69.912 ms  81.458 ms
    mymachine-Mac:c name$  site.com (160.158.244.92): 56 data bytes
Run Code Online (Sandbox Code Playgroud)

Mar*_*cny 1

我没有看到你提到的一种方法是使用 SSL 会话:你可以将以下内容添加到 nginx conf 中,以确保每个连接请求都不会发生 SSL 握手(非常昂贵的过程):

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Run Code Online (Sandbox Code Playgroud)

请参阅此处的“HTTPS 服务器优化”: http: //nginx.org/en/docs/http/configuring_https_servers.html