2

我有一个关于 CDN 的非常基本的问题 - BlobStorage 和 WebRole,以及性能。

我有一个非常简单的网站,其中包含静态内容、HTML、Js、图像、CSS 和视频(如果用户访问所有网站,我最多可以将整个内容保留 3-5MB)。我网站的流量将有 98% 来自英国,我计划每天最多有 500.000 名独立访问者。

我的问题是关于性能的。

你会推荐我在我的 webrole 上启用 CDN 吗?我会从中受益吗?即使我的流量“主要”来自英国,使用 CDN 是否有好处?CDN 内容是否缓存在 Internet 提供商(例如 BT)代理上?

您是否建议我在 blob 存储帐户上托管图像、视频等,并使用来自网络角色的绝对 url 引用它?在 blob 上托管静态文件(可能在存储帐户上启用 CDN?)或只是将静态文件放在 Web 角色上,在性能方面有什么区别?

我在网上没有找到很多参考资料,但我猜 Web 角色、CDN 和存储使用不同的磁盘/缓存层/网络层,它应该会影响性能。

4

2 回答 2

11

在 blob 存储(或 CDN)中托管静态内容可以减轻您的 Web 角色实例(更具体地说是 IIS)的负担。这将减少 CPU 和内存的使用,以及进出 Web 实例的整体带宽。更多细节:大多数浏览器都配置为(我相信)到给定域的两个并发连接。将静态内容移动到 Blob 或 CDN 可为您提供一个额外的域,并在您的浏览器中提供更多关于内容下载的并行性。

如果您愿意,您可以使用 CDN,但最好将 CDN 用于不经常更改的内容(因为您不能强制使内容过期)。因此,如果您有一些不经常更改的 CSS、背景图像等,那么这些都是很好的 CDN 候选者。如果它是一个每天都在变化的首页 HTML 文件,我会跳过那个 CDN。

至于直接访问数据中心的好处:CDN 访问不一定是地理上最近的节点;它基于许多因素。也就是说,EMEA 地区有一些 CDN 节点(请参阅此处的完整列表)。您可以随时添加 CDN,但迁移到 Blob 存储将对您的应用程序的性能产生积极影响,即使没有 CDN。

编辑:将静态内容存储在 Blob 中与与部署捆绑相比,还有一个优势:您可以非常轻松地更新单个文件,而无需重建/重新部署整个部署包。

于 2012-03-01T15:11:47.370 回答
2

我唯一能想到的是,使用 CDN 角色,您可能在图像上有更好的标头(Cache-Control、Expires),以便浏览器和代理可以缓存这些图像很长时间,而如果您提供这些图像从您的主站点,您负责控制这些资源的标题。

提供来自不同域的图像也会有所帮助,因为对托管在 CDN 上的资源的所有请求(不同的域名,不要使用 3 级域)将不包含主站点所需的 cookie 和身份验证标头。

于 2012-03-01T14:26:05.283 回答