首页 > 其他分享 >CDN如何通过减少延迟来提高性能

CDN如何通过减少延迟来提高性能

时间:2023-07-02 09:03:11浏览次数:39  
标签:存储 uploader CDN 主机名 Akamai com 性能 延迟

对象存储解决方案概述

假设我们有一个应用程序将上传的文件存储在世界某个地方。对于本示例,它是来自 Akamai 云计算服务的对象存储存储桶,我已将其部署到该us-southeast-1区域。

您可能使用不同的提供商和不同的区域,但以下几点仍然适用。

因此,当我上传 Nugget 打哈欠的可爱照片时,我可以通过某个 URL(如 austins-bucket.us-southeast-1.linodeobjects点com/files/nugget点jpg)访问它

 

Nugget 是一只超级可爱的狗。自然,很多人都想看到这一点。不幸的是,由于这张照片是在该us-southeast-1地区托管的,因此居住在远离该地区的任何人都必须等待更长的时间才能亲眼目睹这只野兽。

延迟很糟糕。

这就是 CDN 存在的原因。

(更|多优质内|容:java567 点 c0m)

 

什么是CDN?

CDN 代表“内容分发网络”。它是一个由分布在全球的计算机组成的连接网络,可以存储相同文件的副本,以便当用户请求特定文件时,可以从最近的计算机向用户提供该文件。

通过使用 CDN,可以缩短请求必须传输的距离。这有助于更快地解决请求,无论用户位于何处。

这是针对那张 Nugget 照片的webpagetest点org 测试结果。该请求是从他们位于日本的服务器发出的,请求完成需要 1.1 秒。

 

我可以在应用程序前面设置一个 CDN 以在世界各地缓存照片,而不是直接从对象存储桶提供文件。

因此,东京的用户将获得相同的照片,但从最近的 CDN 位置(可能在东京)提供服务,多伦多的用户将获得相同的文件,但从最近的 CDN 位置(可能在多伦多)提供服务。

这可能会对性能产生重大影响。

让我们看一下相同的请求,但在 CDN 后面提供服务。pagetest点org结果仍然显示了同一张 Nugget 的照片,请求仍然来自东京,但这次只花了 0.2 秒——时间的一小部分!

 

当对该图像发出请求时,CDN 可以检查它是否已有缓存版本。如果有,它可以立即做出响应。如果没有,它可以从对象存储中获取原始文件,然后保存缓存版本以供将来的请求使用。

注意:上面报告的数字来自单次测试。它们可能会根据网络条件而有所不同。

CDN 的复合回报

上面的示例侧重于提高上传文件的传输速度。在这种情况下,我只处理上传到对象存储桶的单个图像。它显示了响应时间几乎整整一秒的改进,这很棒,但当您考虑其他类型的资产时,情况会变得更好。

CDN 非常适合任何静态资产(CSS、JavaScript、字体、图像、图标等)。通过将其放在我的应用程序前面,所有其他静态文件也可以自动缓存。这包括 Nuxt.js 在构建过程中生成的文件,以及托管在应用程序服务器上的文件。

当您考虑“关键渲染路径”和渲染阻塞资源(例如 CSS、JavaScript 或字体)时,这一点尤其重要。

当网页加载时,当浏览器遇到渲染阻塞资源时,它将暂停解析并在继续之前下载资源(因此称为“渲染阻塞”)。因此,影响单个资产的任何延迟也可能影响网络级联中其他资产的性能。

这意味着 CDN 的性能改进正在复合化。好的!

那么,这是为了更快地向更多人展示我的狗的可爱照片,还是为了帮助您使应用程序运行得更快?是的!

无论出于何种动机构建更快的网站,如果您计划为多个地区的客户提供服务,将 CDN 作为应用程序基础架构的一部分都是至关重要的一步。

如何将 Akamai CDN 连接到对象存储

现在我想进行一些附带任务并分享我如何使用对象存储设置 Akamai。我没有找到有关该主题的太多信息,我想帮助处于这种特定情况的任何人。如果它不适用于您的用例,请随意跳过本节。

Akamai 是全球最大的 CDN 提供商,在 4,000 个地点拥有约 300,000 台服务器。它被世界上一些最大的公司使用,但很难找到与 Akamai 相关的内容,因为大多数大公司不喜欢共享有关其基础设施的不必要的信息。

但我不是大多数公司:)

(注意:您需要一个 Akamai 帐户并有权访问您的 DNS 编辑器)

在Akamai Control Center中,我使用Ion Standard 产品创建了一个新属性,该产品非常适合通用 CDN 交付。

 

单击“创建属性”后,系统将提示您选择是否使用设置向导来指导您创建属性,或者您可以直接进入新属性的属性管理器设置。我选择了后者。

在“属性管理器”中,我必须在“属性主机名”部分中添加新的主机名。我为我的应用程序添加了主机名。这是用户可以找到您的应用程序的 URL。就我而言,它是 uploader.austinil点com。

 

此过程的一部分还需要为主机名设置 SSL 证书。我保留了增强 TLS 的默认值。

 

完成所有设置后,Akamai 将向我显示以下属性主机名和 Edge 主机名。稍后当需要进行 DNS 更改时,我们会再次讨论这些内容。

  • 属性主机名: uploader.austinil点com

  • Edge 主机名: uploader.austingil.com-v2.edgekey点net

 

接下来,我必须设置实际属性的行为,这意味着编辑属性配置设置下的默认规则。具体来说,我必须将源服务器主机名指向源服务器所在的域。

 

在我的 DNS 中,我创建了一条新的 A 记录,将 origin-uploader.austingil点com 指向我的源服务器的 IP 地址,然后添加了一条 CNAME 记录,将 uploader.austingil点com 指向 Akamai 提供的边缘主机名。

  • A: origin-uploader.austinil点com -> 源站IP

  • CNAME: uploader.austingil点com -> uploader.austingil.com-v2.edgekey点net

这让我可以构建 CDN 配置并根据需要进行测试,仅在准备好时才通过 CDN 发送流量。

最后,为了通过 Akamai 提供对象存储实例中的文件,我基于空白规则模板创建了一条新规则。我设置了适用于所有前往/files/*子路由的请求的规则标准。

 

规则行为设置为重写请求的源服务器主机名并将其更改为我的对象存储位置:npm.us-southeast-1.linodeobjects点com。

 

这样,任何发送到uploader.austingil点com/files/nugget点jpeg的请求都将通过CDN 提供服务,但文件源自对象存储位置。当您加载应用程序时,Nuxt 生成的所有静态资源也由 CDN 提供。所有其他请求都通过 Akamai 传递并转发到指向原始服务器的 origin-uploader.austingil点com。

这就是我将 Akamai CDN 配置为位于我的应用程序前面的方式。希望这一切都有道理,但如果您有疑问,请随时问我。

总结

今天,我们了解了 CDN 是什么、它在减少网络延迟方面发挥的作用,以及如何使用对象存储设置 Akamai CDN。

但这只是冰山一角。为了获得更高的性能,需要对 CDN 配置进行大量调整。

除了静态文件缓存之外,CDN 还可以提供许多其他性能和安全功能:Web 应用程序防火墙、更快的网络路径解析、DDoS 保护、机器人缓解、边缘计算、自动图像和视频优化、恶意软件扫描、请求安全标题等等。

(更|多优质内|容:java567 点 c0m)

标签:存储,uploader,CDN,主机名,Akamai,com,性能,延迟
From: https://www.cnblogs.com/web-666/p/17520365.html

相关文章

  • 【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服
    调优意义系统运行缓慢,执行速度较差虽然没有对用户或公司造成实质性的损失,但它从侧面反映出系统在某些方面存在问题。可能需要对系统参数进行优化,或者对系统的设计和交互进行调整,这是后续系统性能优化的一个重要过程。我们将继续努力优化系统,以确保其高效运行和良好性能,以提升用户体......
  • 【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服
    @目录调优意义计划分析流程相关分析优化分析Nginx请求服务日志将请求热度最高的接口进行优化异步调用优化方式注意要点分析调用链路追踪体系建立切面操作分析性能和数据统计存储相关的调用以及耗时信息分析信息以及相关的耗时损耗日志系统的升级和优化异步日志处理机制异常问题和......
  • 提升项目数据查询速度:从pgsql数据库性能到SQL优化的实战经验分享
    最近在项目中遇到这样一个问题,在进行数据查询的时候,特别的慢。项目的基本情况首先描述下项目的使用情况,数据库使用的是postgresql关系型数据库,主要数据存储字段data使用的类型是JSONB。data字段存储数据,这个数据是包含了不少的图元,特别是在性能测试中,加入了特别多的图元信息,最......
  • JMeter性能测试-01
    一、使用JMeter工具发送get请求(1)不带参数的get请求 (2)路径上带参数的get请求 (3)带参数的get请求二、使用JMeter工具发送post请求(1)不带参数的post请求 (2)表单数据类型的post请求 (3)form数据类型的post请求,要添加http信息管理头,申明是json数据格式三、JMeter设......
  • SAP CRM Fiori 应用后台 OData 服务性能优化的一些思路
    取一个task的attachmentheader信息(包含4个attachment)都需要0.5秒时间,太慢了。具体分析:取attachment时,会先callretrieve_task_opt取taskheader信息,消耗0.1秒。通过之前4个节点的优化经验,这个retrieve是不需要的,此时header信息已经在memory里了,直接使用即可。主要的瓶颈就......
  • 前端性能优化1
    1.NavigationTimingAPI1.unloadEventStart/end前一个页面的unload时间戳=>无前置页面时?=>值为0=>前置页面域不同=>值为02.redirectStart/end第一个http重定向发生的时间/最后一个http重定向完成的时间=>有跳转且是同域名=>否则值为03.fetchStart浏览器准备好......
  • 性能测试介绍
    1.简介1.1说明如未特殊说明,涉及工具的理论都是基于jemter来说的问题性能测试能不能模拟客户操作,发现服务器性能问题? 很难1.2什么是软件性能从相关角色的角度关注点来看用户:只关心操作快慢业务或产品:关注产品快慢,响应时间运维:关注快慢、响应时间、监控各种资源、确保......
  • 为什么面试官这么爱问性能优化?
     笔者是一个六年前端,没有大厂经历,也没有什么出彩的项目,所以今年以来,前端现在这种行情下并没有收到多少面试,但是为数不多的面试中,百分之九十都问到了性能优化的问题,而且问题都出奇的一致:平时的工作中你有做过什么性能优化?对于这个问题其实我的内心os是(各位轻喷~):你们怎么都这么爱问......
  • 开源通用高性能的分布式id序列组件
    原文地址:https://ntopic.cn/p/2023062101/Gitee源代码仓库:https://gitee.com/obullxl/sequence-jdbcGitHub源代码仓库:https://github.com/obullxl/sequence-jdbc分布式id序列说明业务数据的存储,少不了数据记录的id序列。id序列(或称序列)的生成方式有很多种,比如当前时间戳、......
  • SAP HANA性能优化与分析(持续更新中)
    本文描述了可以用来识别和解决特定性能问题的措施,并向您展示了如何在以下方面提高SAPHANA数据库的性能:•主机资源(CPU、内存、磁盘)•数据结构的大小和增长•事务性问题•SQL语句性能•安全性、授权和许可•配置......