如何解决 CloudFront 的延迟增加问题并减少延迟?
2 分钟阅读
0
我看到来自 Amazon CloudFront 的响应延迟增加了。如何确定原因并减少延迟?
简短描述
要解决 CloudFront 的延迟问题,请首先确定以下哪些事件导致了延迟:
- 请求在客户端和 CloudFront 边缘站点之间传输所花费的时间。这包括域名系统 (DNS) 查找过程以及 TCP 和 SSL/TLS 协商。
- 请求在 CloudFront 和源之间传输所花费的时间。这包括源 DNS 查找过程、与源的 TCP 和 SSL/TLS 协商,以及源处理和响应对象所花费的时间。
然后,按照故障排除步骤对造成最大延迟的事件执行故障排除。
解决方法
识别导致 CloudFront 延迟的事件:
要确定哪些事件导致 CloudFront 延迟,请执行以下操作之一:
- 运行以下 cURL 命令:
curl -w "DNS_resolution: %{time_namelookup}| TCP_negotiation_time: %{time_connect}| SSL_negotiation_time: %{time_appconnect}| TTFB: %{time_starttransfer}| Total time: %{time_total} \n" -o /dev/null -vsL https://www.example.com
注意:将 example.com 替换为您的 CloudFront 域名或备用域名 (CNAME) 和 URL 路径。
- 检查网络请求的每个阶段在 Web 浏览器的开发人员工具中花费多长时间。例如,如果您使用的是 Mozilla Firefox,则“计时”选项卡会提供此信息。
根据每个事件或请求花费的时间,参阅本文中相关的解决方法部分。
如果您过去曾观察到延迟,请在 CloudFront 访问日志中勾选花费的时间和到达第一个字节的时间字段。CloudFront 访问日志不会记录客户端进行 DNS 查找过程以及 TCP 和 SSL/TLS 协商所花费的时间
减少 DNS 解析的延迟
- 增加客户端 DNS 中的 DNS 缓存时间。
- 增加本地 DNS 服务器中缓存的生存时间 (TTL)。
- 增加 DNS 注册商/提供商中 DNS 记录的 TTL。
- 如果来自互联网服务提供商的解析器 DNS 服务器导致延迟,则考虑使用公有 DNS 服务器。
减少 TCP 和 SSL/TLS 中的延迟 - 协商时间
- 检查您的本地网络带宽和互联网带宽。
- 检查您的互联网服务器提供商或路由器是否有任何网络中断。
- 通过您的互联网服务提供商或网络路由,优化您的本地网络性能。
- 确认使用正确的 DNS 解析器将允许您的 Web 浏览器查找最近的正确 POP 位置。
- 要提高 HTTPS 站点性能,请缩短您的认证链。
- 延迟可能由防火墙、代理或本地路由器引起。要确定其中哪一个导致延迟,请从您的系统运行以下 MTR 命令。有关详细信息,请参阅使用 MTR 诊断网络问题。
mtr -rw example.com --no-dns
注意:将 example.com 替换为您的域名。
缩短第一个字节所用时间 (TTFB) 和所需总时间 (TTL) 的延迟
如果 CloudFront 返回“X-Cache:Hit from cloudfront”
当请求来自最近的边缘站点时,CloudFront 会返回“X-Cache:Hit from cloudfront”。要减少延迟:
- 开启 CloudFront 自动压缩以压缩文件并提高下载速度。
- 使用本地或浏览器缓存来减少对 CloudFront 的请求。指定文件上的缓存控制标头,以指示 Web 浏览器将网站内容在浏览器的内存中或本地磁盘中保留一段时间。有关缓存控制标头的更多信息,请参阅指定 CloudFront 缓存对象的时间。
如果 CloudFront 返回“X-Cache:Miss from cloudfront”
当请求发送到源时,CloudFront 是否会返回“X-Cache:Miss from cloudfront”。要减少延迟:
- 缩短 CloudFront 边缘站点到您的源位置之间的往返时间 (RTT)。如果来自 CloudFront 边缘站点的请求转到最近的源位置,则 RTT 会更少。但是,如果请求来自地理上距离源位置较远的边缘站点,则 TTFB 会受到影响。要优化 RTT,请在地理上更接近用户的多个区域中复制原始服务器。然后,设置原始域名的 DNS,以便它根据延迟或地理位置将请求路由到原始服务器。如果您使用 Amazon Route 53 作为 DNS 提供商,请参阅选择路由策略了解更多信息。
- 开启 CloudFront 自动压缩以压缩文件并降低下载速度。如果您的文件格式不受 CloudFront 自动压缩支持,请在您的源中预压缩该文件,并使用内容编码标头提供该文件。
- 通过启用源延迟指标来检查从源到 CloudFront 的延迟。**注意:**标准 CloudWatch 费率适用。
- 开启 CloudFront 原始护盾。
- 在启用服务器-计时标头功能的情况下添加响应标头策略。此功能可以帮助您了解导致 CloudFront 和源之间延迟的事件。
相关信息
我如何排查在 Amazon S3 上托管并通过 CloudFront 提供的静态网站上的延迟?
AWS 官方已更新 2 年前
没有评论
相关内容
- 已提问 2 个月前lg...
- 已提问 5 个月前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前