什么是存储媒体文件的有效方法?

时间:2011-04-19 16:49:10

标签: file hosting media scalability

假设您正在构建下一个可以吸引大量用户的优秀社交应用。您可能遇到的一个问题是,您需要以可扩展的方式托管大量媒体文件,而不会限制整个网站的性能。

可能有什么好方法可以解决这个问题?

专用于媒体文件的服务器?
云?

1 个答案:

答案 0 :(得分:1)

媒体文件与包含应用程序逻辑的系统部分不同,服务媒体文件是I / O密集型任务,而应用程序逻辑通常需要I / O和CPU的某种组合(完全平衡非常适合依赖)。这就是为什么使用专为磁盘和网络吞吐量优化的专用媒体服务系统确实有意义的原因。

如果您使用自己的专用服务器,请参阅一些通用指南:

  • 投入大量内存并使用缓存来获取最常用的内容。这个想法是节省磁盘访问时间(理论上RAM大约快100倍)。 Memcache是​​目前最受欢迎的解决方案。
  • 投资快速磁盘IO,安装多个磁盘并使用RAID(条带化)来提高吞吐量。
  • 为专用/共同服务器选择托管服务提供商时,请关注带宽。
  • 如果可能,您希望将文件放在靠近其使用者的位置,以便改善网络延迟。因此,例如,如果存储在南美洲的服务器上,巴西葡萄牙语中的媒体文件将受益。
  • 一个好的CDN几乎可以解决上述所有问题。根据我自己的经验,它将我们自己的服务器上的负载减少了大约85%。我们使用Cotendo和Akamai。您可以查看其他提供商ottomh:CDNetworks,Limelight,Level3。

如果您刚刚开始,那么您最好的选择是使用S3来存储您的文件,将CloudFront作为您的CDN。根据我自己的经验,它是一个非常简单的设置解决方案,并且在开始时具有相当的成本效益 - 因为成本随着数据和使用量的增长呈线性增长。超过一定的门槛虽然有必要开始考虑管理自己的专用存储机架并使用其他CDN。