2008-10-25 53 views

回答

0

如果您预计需要大规模扩展和加载,则可以使用EC2服务器进行调整大小并将其存储在S3中。最终,它将取决于你的增长和预算的很多因素。服务器上的当前负载是多少?您的容量是否接近?调整图像大小和CPU数量是多少?它们可以被缓存和重用吗?如何使用图像?

2

您需要弄清楚处理图像需要多少时间以及预计处理的数量。

如果您的服务器可以在峰值负载下实时处理它们,请不要为此担心。

我想说,如果你的服务器可以处理负载,但不是实时的,我会在服务器上建立一个队列,并有一个cron作业或守护进程处理请求以外的图像。如果队列开始增长或者服务器开始超载,可以将其移动到另一台机器。

如果其他机器无法处理负载,您应该可以轻松地添加更多机器来处理队列。

此时,您可能非常复杂,您可以开始利用EC2来进行按需扩展等操作。

6

我一直在使用EC2和专用服务器相似的任务,这里有一些提示:

  1. 使用尽可能少的IO越好。如果您打算使用ImageMagick之类的东西,那么知道写入磁盘会浪费IO资源(除非您想缓存它).PHP/GD允许您直接在http响应中发送jpeg。

  2. 尽快释放RAM:尽可能释放源和调整大小的图像。消除您的服务器交换内存的机会。

  3. EC2对于上下文切换非常缓慢。所以尽量少尝试。像Gimp这样的处理器非常缓慢(缩短了专用时间0.2秒,EC2耗时7秒)。另外,ImageMagick时期非常缓慢。如果可以,请使用PHP/GD进行所有处理。

  4. 请记住设置最大内存。您将需要内存中的图像的两个副本(源和缩小)。

  5. 最后但并非最不重要:以实时开始。不要从过度使用mysql队列和外部守护进程的解决方案开始。从长远来看,这些将难以维持。因此,在制作火箭之前,请实时试一试。

祝你好运!