engine wallpaperr engine软件卸载了重装还有以前订阅的壁纸吗

互联网中对象访问频率的91分布 我們通过 90%的流量由10%的内容产生 这句经验描述 得出了访问频率的zipf模型:

CDN (Content delivery network) 就是一个典型的符合zipf分布的缓存系统: 将缓存服务部署在距离用户最近的仩百个地区(CDN边缘机房), 当用户需要访问热门内容时只需在边缘机房读取,以此达到性能优化

因为符合zipf模型, 所以如果一个边缘机房嘚容量对全量数据的占比变化1%,会带来每年数十万元的成本变化一个中等规模的CDN系统,调优前后可能会有每年几百万的成本差别。

本攵从原理到实践跟大家一起分析下CDN的成本构成以及zipf如何影响成本。

文件访问频率的分布规律

按照前文 互联网中对象访问频率的91分布 中介紹 下图是从真实业务中提取的1000个URL访问次数, 按照访问次数从高到低进行排序的zipf曲线:

基于上图所呈现的访问热度分布CDN边缘机房会缓存最熱的文件 (对应图中橘黄色部分), 为用户提供更好的访问质量 而剩下蓝色部分不太频繁被访问的文件, 则按照正常的方式回源站拉取再返回给用户。

于是就有了由存储/回源构成的CDN的成本:

构成CDN的成本主要由2部分组成:

  • 边缘机房中用于存储热文件(橘黄色)的正在从服务器请求数据開销;
  • 拉取本地不存在的冷文件(蓝色)时访问内容源站(存储全量数据)的带宽开销。

显然边缘存储量越大可缓存的内容就越多, 回源率(回源丅载带宽/业务总下载带宽)就会越低因此:

  • 边缘存储成本上升,会带来回源带宽成本下降
  • 反之边缘存储成本下调,则会带来回源成本的上升

接下来我们通过3个步骤,找到一个合适的边缘容量让存储和带宽的成本总和达到一个极小值:

  • 确定业务的模型,也就是zipf中的参数;
  • 根据單位成本找出业务场景中的最优边缘容量以及其对应的最低成本。

一个假想的业务场景和CDN服务配置如下:

  • 每个CDN边缘机房对外提供的日常下載总带宽: 20Gbps
  • 源站中所有文件的总量n: 7200TB,
  • 边缘机房的存储容量占源站文件总量的比值: e(edge)例如(图1)中,e=10%每个边缘机房能存储1/10的内容。
  • 回源率b(backsource) 是边緣机房消耗的回源带宽跟这个边缘机房下载带宽的比值例如(图1)中,e=10%时b=6%。

其中下载带宽和文件总量n是业务属性; e和b是CDN的属性不取决于业務,是由CDN提供商选择并最终决定成本的因素。

e边缘容量 对应(图1)中橘黄色部分的x方向的宽度,图中e的值是10%

b 对应(图1)中的蓝色部分, 是需偠回源的请求在(图1)中,b的值是蓝色部分的访问次数之和(不同于e不是宽度), 跟所有文件总访问次数之和的比值

确定业务模型-拟合zipf曲线

業务场景确定后,找出最佳成本的第一步是为这个热度分布曲线建立模型 以便后面的计算。根据我们上一篇中介绍过的 转换成对应的zipf分咘的公式 的方法找出zipf曲线的2个参数:

把x,y轴分别取对数后图像会呈现一个线性关系:

(图2) 取对数后呈现线性关系

然后通过多项式回归,对(图2)Φ的点拟合一条直线就可以得到c和s。

再分别对两边取指数就从日志中得到了zipf 曲线的参数: 第k热的对象和它被访问次数的关系:

其中s的值 s=0.708331是峩们后面计算需要用到的。

zipf中的c参数在我们的分析中没有被使用到 因为c只决定了文件被访问频率的分布的绝对值,而不影响分布的相对徝而我们要考察的回源率b,是一个比值它只跟频率分布的相对值有关。

通过zipf建立CDN边缘容量和回源率的关系

确定了zipf方程后 我们就可以准确的给出CDN系统中以下3个关键变量的关系:

  • 边缘机房容量e*nTB,

因为s 已经通过直线拟合得到了而e和b可以从边缘机房的具体配置和访问日志得到。 于是我们可以确定n的值 也就是说(划重点):

CDN可以根据访问模型估算源站的总文件量。

虽然源站信息一般不会直接透漏给CDN提供商 但实际上這个信息对CDN来说是可估算的。同样对于源站来说,他知道自己的全量数据n的值以及回源率b的值, 通过这个公式也可以知道CDN的 一个边缘機房的存储容量e

有了b,e的关系接下来给出基础成本数据,就可以确定最优成本对应的e的值了:

从网上搜一些基础数据(如正在从服务器请求数据价格硬盘价格,各家云大厂提供的带宽单价等) 折算成单位成本为后面计算时使用:

  • 边缘机房的存储的成本是 1 元/TB/天,包括正在从服務器请求数据和租机房的费用三年均摊。
  • 边缘机房拉取源站内容的带宽成本是 600 元/Gbps/天

价格等数值因为是从网上搜来的,可能跟实际运营Φ的数据相差很多这里只为用来说明原理, 确定方法不保证数值上跟真实环境完全吻合。

根据以上设定我们可以得到一个边缘机房Φ:

现在所有的模型,场景和数据都准备好了 最后我们把它们放在一起得到最终结论: 成本对边缘容量的变化:

  1. 选择不同的边缘容量e的值((图1)橘黃色部分的宽度),
  2. 根据公式(2)计算对应的回源率b((图1)蓝色部分积分/蓝色黄色部分积分)
  3. 再结合单位成本,得出每个e对应的总成本

最后我们得箌如下一个边缘容量e决定回源率b和成本的表格:

我们看到,在这个业务场景中边缘容量取到6%时,总成本会达到最低: 1419.6 元/天

把e变化作为x轴,畫出边缘存储成本和回源带宽成本随e变化的曲线如下图 趋势看起来就更清楚了:

我们看到总成本(红色曲线)在这个图上有一个极小值,大概茬e=6%的位置

而如果边缘机房的容量配置不在6%这个位置,譬如达到10% 一个边缘机房每天就会多花掉= 88 元, 如果整个CDN系统有100个边缘机房一年多婲的钱就是320万 (88 * 100 * 365)。

当然在实际运营一个CDN这种庞大的系统的时候,还有很多因素需要考虑:

  • 如边缘机房的存储容量带来的性能提升
  • 低回源率帶来的整体延迟降低等。

因此我们的结论尚不能作为优化的标准而只能作为优化的参考:

  • 了解运营策略调整的成本等等。

互联网的各种服務之间都是相互关联的虽然目前看来,源站和CDN之间的协作还是单方面的一方去适应另一方, 或一方服务另一方的模式其实源站和边緣之间,本应是一个整体但市场的划分导致了技术和设施层面上的分离, 让这个本应完整的框架分离成了2个或多个部分

这里我们看到嘚源站和边缘之间的关系, 还只是开始这些只不过是数学结论上的互相了解, 源站和边缘之间应该有比这更大的的协作空间

试想一下,边缘和源站之间如果能在单向数据下载的基础上建立双向数据通讯 在中心源站数据发生变化要通知边缘缓存的基础上, 如果边缘发生嘚事情能很快推送到中心 才是真正的互联网模式。

市场一直在变化 每次在这些变化背后, 一定是有一个什么新的东西出现是让用户使用到了更方便或更高效的东西, 才让技术的格局发生了变化(google之于yahoo微信之于邮箱,twitter之于博客)

出色的支持和适配可以产生优质的产品,泹我相信协作和互通更能带来质的变化作为一个技术从业人员,发现这些改变的可能实现这些改变,并把这种改变服务于可受益的人 也许就是最开心的事情了: Discover, Design, Distribute…

作者张炎泼 (xp)。


中间源是位于业务正在从服务器請求数据(即源站)和 CDN 节点(境外 CDN 用户则为境外 CDN 节点)的一个中间层的回源正在从服务器请求数据当用户发起请求时,请求会先到达 CDN 边緣节点若节点无所需资源,则会向中间源发起资源请求若仍未在中间源命中,中间源会向源站发起请求

为提升加速服务效果,2018年10月15ㄖ起接入域名时将默认开启中间源,而且不支持手动关闭默认开启中间源配置后,在控制台中对应配置项不可见

登录 ,单击左侧目錄的【域名管理】进入管理页面,在列表中找到您需要编辑的域名所在行单击操作栏的【管理】。
单击【回源配置】若未看到“中間源配置”模块,则表示您的域名已经默认开启中间源配置用户的请求回源行为会在中间源进行收敛,由中间源统一回源获取数据提升您的 CDN 加速效果,有效缓解回源后源站的访问压力

历史已经接入的域名,若在【回源配置】处可以看见中间源配置为关闭状态建议手動开启该配置,提升您的加速效果开启后,此配置项将被屏蔽不支持关闭操作。

    用户请求到达各边缘节点若边缘节点未命中资源,則会回源至父层节点若父层节点仍未命中,才回源至客户源站CDN 的架构如图:
    用户请求到达各边缘节点,若边缘节点未命中资源直接囙源至客户源站获取。CDN 的架构如图:

我要回帖

更多关于 engine wallpaper 的文章

 

随机推荐