调整 Apache 和服务器以进行大量照片上传

调整 Apache 和服务器以进行大量照片上传

我在 EC2 平台上运行了一个 Apache 网络服务器。它接收大量来自用户的上传(大图片文件)。

问题是上传后我必须立即将图像转换为其他尺寸,因为它们必须在“下一页”中使用。

我选择了 ImageMagick,因为我注意到 Flickr 也在使用它(http://highscalability.com/flickr-architecture),生成所有照片尺寸大概需要4秒。

当我有 50 个或更多并发用户时,就会出现问题。我做过压力测试,服务器开始变慢。

那么,您知道如何调整 Apache 以进行大量上传吗?

有什么想法可以更快地完成所有事情吗?

答案1

听起来你的问题不是 Apache,而是试图执行并发图像处理作业时服务器的负载。鉴于此,无论你如何调整 Apache,随着越来越多的用户使用你的服务,你的性能仍然会变得更差。

第一个建议是将图像卸载到一组机器上,进行专门的图像处理。这比扩充 Web 服务器来尝试处理大规模图像处理更具可扩展性。

答案2

Imagemagick我们遇到了类似的问题,并想出了通过重新编译选项来提高性能,--disable-openmp该选项由于内部线程(未使用/不需要)导致 CPU 高压。

在寻找答案之后,我进入了以下线程,它指示我禁用上述功能,我相信它会提高您创建图像的性能。

http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=14307

答案3

获得更强大的 CPU 能力、更多内存 (RAM) - 图像调整大小是一项计算密集型且通常占用大量内存的操作,如果您执行此类操作过多,则需要更强大的硬件规格。

如果您对单个图像执行多次调整大小,请尝试确保按大小递减的顺序执行,以便您可以使用较小的源图像执行以后的调整大小(前提是这能提供可接受的质量)。

答案4

也许您应该重新编译 ImageMagick 以仅使用 Q8(8 位通道深度)。如果使用 JPEG 文件,这可能会导致性能大幅提升,因为将使用更少的内存。

相关内容