每天处理超过10万张上传图片的大小调整

本文关键字:调整 处理 10万 每天 | 更新日期: 2023-09-27 17:51:18

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

我们有一个双cpu intel xeon L5630 2.13GHz服务器,具有24 gigs ram。我们正在使用一个简单的图像调整脚本从原始图像制作缩略图。但这是最大的cpu。

我想从硬件和软件两个方面来解决这个问题。
  • 在硬件方面,我们将订购另一台带有双Xeon 3GHz处理器的服务器。此服务器将独立于网站处理图像。

  • 关于软件,我想问一下有经验的人,他们使用什么样的软件来处理低cpu开销的图像。

每天处理超过10万张上传图片的大小调整

首先,分析读/写平衡和(更重要的)读分布

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

第二,获得一个服务器安全的、服务器优化的映像库

看来你已经在看我的软件了,ImageResizer,据我所知,这是。net唯一的服务器友好的选择。它还提供了一系列管道,每个管道都有自己的权衡。如果你想要原始速度,使用WIC管道;我希望你能看到比当前脚本好10-20倍的性能。 WIC管道的质量不如默认管道好,但速度快2-4倍,并且在大多数图像上您将无法分辨出差异。

考虑寻求帮助

我帮助很多公司突破了100万和1000万的形象门槛;有一些架构缺陷需要避免,但在这种规模下,最好深入了解您的需求。清漆或CDN是一个选项吗?

首先,它们需要实时处理吗?-如果没有,你可以考虑一个队列基础系统,利用其他服务器/当前服务器上的安静时间来处理缩略图。

图像是否只调整一次大小,或者用户是否可能再次请求图像导致另一次调整大小?-如果是的话,你需要考虑缓存。

正在调整的图像有多大,一次处理的图像有多少-如果它在一整天中分散?

页面加载时间延迟是由于在回发期间调整图像大小引起的吗?-如果是这样,他们将该指令添加到一个新线程将改善响应时间。

首先,您有一个将图像处理与主服务器分开的好主意。

最好的答案取决于你的具体情况:什么软件环境,什么软件用于调整图像大小,它是如何配置的,等等。这可能是优化可以产生一个强大的速度改进。例如,是否有多个内核,可以使用基于gpu的处理吗?

也就是说,由于每个图像调整操作都是独立于其他操作的,因此存在一个通用的解决方案。您可以轻松地将工作分发到任意多台服务器上。构建一个(或多个)额外的图像处理服务器。然后使调整大小请求分发。这可以在几个级别上完成(是否通过URL调整web客户端调用的大小?在发送给它们的url中随机化服务器名称。是否按业务层调用调整大小?随机选择服务器名

如果您需要更具体的答案,请提供更多的细节