una tamaño resolucion reducir peso perder online los imagen fotos como cambiar calidad php image-processing amazon-web-services cloud

php - resolucion - Cómo mejor cambiar el tamaño de las imágenes fuera del servidor



reducir el peso de una imagen online (3)

Puede usar un servidor EC2 para hacer el cambio de tamaño y almacenarlo en S3 si anticipa la necesidad de una carga y descarga a gran escala. En última instancia, dependería de muchos factores dependiendo de su crecimiento y presupuesto. ¿Cuál es la carga actual en su servidor y está cerca de la capacidad? ¿Cuál es el tamaño y la cantidad de CPU que se necesita para cambiar el tamaño de las imágenes y pueden almacenarse en caché y reutilizarse? ¿Cómo se usan las imágenes?

Tengo un sitio en el que los usuarios cargan imágenes. Esas imágenes se cambian de tamaño a varias dimensiones. Actualmente lo hago en mi servidor, pero estaba pensando en procesar eso en AWS o algo similar. ¿Es eso una buena idea?


He estado utilizando EC2 y servidores dedicados para tareas similares, y aquí hay algunos consejos:

  1. Use tan poco IO como sea posible. Si tiene la intención de utilizar cosas como ImageMagick, sepa que escribir en un disco es un desperdicio de recursos (a menos que desee almacenarlo en caché de todos modos). PHP / GD le permite enviar jpeg directamente en respuesta HTTP.

  2. RAM libre lo antes posible: libera fuente e imágenes redimensionadas siempre que puedas. Elimine la posibilidad de que su servidor intercambie memoria.

  3. EC2 es extremadamente lento con interruptores de contexto. Así que intente lo menos posible. Los procesadores como Gimp son extremadamente lentos (una reducción de escala que tomó 0.2 segundos en dedicado, tomó 7 segundos en EC2). Además, ImageMagick es extremadamente lento, punto. Si puede, use PHP / GD para todo su procesamiento.

  4. Recuerde establecer la memoria máxima. Necesitará dos copias de la imagen en la memoria (fuente y reducida).

  5. Por último, pero no menos importante: comience con tiempo real. No comience con una solución excesiva de colas mysql y daemons externos. Estos serán difíciles de mantener a largo plazo. Así que pruebe en tiempo real antes de construir un cohete.

¡Buena suerte!


Necesitas saber cuánto se tarda en procesar tus imágenes y cuántas anticipas procesar.

Si su servidor puede procesarlos en tiempo real con su carga máxima, no se preocupe por eso ahora mismo.

Diría que si su servidor puede manejar la carga, pero no en tiempo real, construiría una cola en el servidor y haría que un trabajo cron o un daemon procesaran las imágenes fuera de la solicitud. Si la cola comienza a crecer o su servidor comienza a sobrecargarse, puede moverlo a otra máquina.

Si esa otra máquina no puede manejar la carga, debería poder, de una manera más fácil, agregar más máquinas para procesar la cola.

En ese momento, probablemente sea bastante sofisticado y pueda comenzar a aprovechar EC2 para cosas como escalar a pedido.