【问题标题】:ImageResizer with DiskCache expected performance and best instance to select具有 DiskCache 预期性能和最佳实例选择的 ImageResizer
【发布时间】:2014-03-31 01:25:44
【问题描述】:
我正在考虑将 ImageResizer 用于照片共享应用程序,希望能在两个问题上提供帮助。
推荐使用什么 Azure 实例类型(或服务)?在我看来,使用大型实例进行扩展会比使用许多小型实例更好,这是一个公平的假设吗?还是建议购买内存密集型虚拟机?
鉴于推荐的 Azure 设置,我们期望每分钟(或秒或小时......无论使用哪种指标更好)提供多少标准尺寸的照片(比如 2M),无论是否使用磁盘缓存插件?
基本上,我想弄清楚我需要多少个 Azure 实例才能在不降低性能的情况下每分钟处理一百万张照片,以及获得最佳性能的理想 Azure 设置是什么。
我已阅读 best practice guide,提供了很好的信息,但对回答最佳 Azure 设置没有帮助。
非常感谢任何指导!
【问题讨论】:
标签:
.net
azure
azure-blob-storage
imageresizer
【解决方案1】:
最佳设置取决于很多因素:
- 平均源图像大小(以字节为单位)。 (增加网络带宽要求)
- 以百万像素为单位的源图像大小。 (增加 RAM 要求)。
- 结果图像大小(以字节为单位)。 (增加磁盘空间要求)
- 源图像计数。 (增加 Blob 存储要求、网络带宽要求)
- 平均每个源图像的输出版本。 (提高缓存磁盘速度和大小要求)
- 活动与存档图像集。有多少百分比的图像集获得了 90% 的流量? (影响缓存调整和 CDN 使用)
- 需要应用什么样的授权规则? DiskCache 可以做任何事情,但 CDN 只能做过期链接。
- 源文件和输出文件的格式是什么?按设计,PNG 每百万像素的速度比 JPEG 慢 10 倍。 TIFF 可以包含任何类型的压缩算法——有些解压缩速度很快,有些算法滞后。
网络带宽成为瓶颈的情况并不少见,尤其是在您使用 Blob 存储的情况下。
我通常建议从每个实例 3.75-8GB RAM 开始,以及与可用核心一样多的网络花园实例,然后进行基准测试。
我们目前不发布虚拟实例的基准测试,因为性能很大程度上取决于同一硬件上的其他虚拟实例的性能。
AFAIK,我们的用户(即使是那些拥有 PB 级图像的用户)都不需要扩展超过 3 个节点来提高速度;通常甚至那些只是为了可用性。
最好的办法是download the software 并使用您的 数据对其进行测试。千篇一律的基准测试有太多变量对您有用,唯一重要的成本就是您花费几个小时的时间。安装通常大约需要 5 分钟,但配置 VM 可能需要一段时间。