繁体   English   中英

每天处理超过100,000张上传图片的大小

[英]Handling resizing over 100,000 uploaded images per day

目前,我们正在实时调整图像大小。 我们的用户每天上传大约5万到10万张图片。 并且我们的服务器固定为24/7的100%cpu使用率。 而且页面加载时间很慢。 Ram不是问题。

我们有一台双CPU的Intel Xeon L5630 2.13GHz服务器,配备24 GB的RAM。 我们正在使用一个简单的图像调整大小脚本来从原始图像制作缩略图。 但是,这使CPU发挥了最大作用。

我想通过硬件和软件来解决这个问题。

  • 在硬件方面,我们将订购另一台配备Dual Xeon 3GHz处理器的服务器。 该服务器将处理与网站分开的图像处理。

  • 关于软件,我想问一个有经验的人,他们正在使用哪种软件来处理cpu开销较低的图像。

任何想法将不胜感激。

首先,分析您的读/写余额和(更重要的是)读分布

大多数高容量用户发现最好将上传的文件直接发送到未经修改的Blob存储中,并根据请求动态调整大小。 这种方法有很多好处(敏捷性,移动支持,控制),但主要是可以降低资源利用率。 大多数内容永远不会引起关注。 为什么要浪费资源呢?

其次,获得服务器安全的,服务器优化的映像库

看来您已经在查看我的软件ImageResizer ,据我所知,它是.NET唯一服务器友好的选择。 它还提供了一系列管道,每个管道都有自己的权衡。 如果需要原始速度,请使用WIC管道。 我希望您会看到比当前脚本好10到20倍的性能。 该WIC管道的质量是不是缺省管线一样好,但它是2-4x速度更快,而你将无法知道在大多数图像的差异。

考虑获得帮助

我曾协助许多公司突破100万和1000万图像障碍。 有一些架构上的陷阱可以避免,但是在这种规模下,最好深入了解您的需求。 是否可以使用光油或CDN? 这些可以大大帮助扩展超过500个图像/秒的障碍。

首先,它们是否需要实时处理? –否则,您可以查看一个基于队列的系统,该系统可利用其他服务器/当前服务器上的安静时间来处理缩略图。

图像是否仅调整过一次大小,或者用户是否可以再次请求图像而导致另一次调整大小? –如果是这样,则需要查看缓存。

如果图像在一整天中分散开,那么它们将被缩放多少大小,一次被处理多少?

页面加载时间延迟是否由回发期间调整图像大小引起? –如果是这样,他们将指令添加到新线程中将缩短响应时间。

首先,您最好将图像处理与主服务器分开。

最佳答案取决于您的具体情况的更多细节:什么软件环境,用于调整图像大小的软件,如何配置图像等。在此进行优化可能会大大提高速度。 例如,是否有多个内核,是否可以使用基于GPU的处理?

就是说,由于每个图像大小调整操作都彼此独立,因此存在通用解决方案。 您可以轻松地将工作分配到任意数量的服务器上。 构建一台(或更多,如果需要)额外的图像处理服务器。 然后进行制作,以便调整大小的请求得以分发。 这可以在多个级别上完成(通过Web客户端通过URL调用调整大小?在发送给他们的URL中随机化服务器名称。通过业务层调用调整大小?在此处随机化服务器名称。)。

如果您需要更具体的答案,请提供更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM