@skyfly2010

Что важнее при обработке фотографий оперативная память или процессор?

Уважаемые специалисты. Помогите разобраться с одним вопросом относительно обработки фотографий инструментами php. Задача сама по себе достаточно банальная: На сайт загружаются фотографии в количестве 20 штук, каждая по 7 мб. Необходимо сделать из каждой из них две уменьшенные копии 960х720 и 240х180. Сама по себе процедура особых вопросов не вызывает и решается при помощи toolkit AcImage. Если речь идет об обработке единичного изображения - вопросов ноль. Все проходит гладко. Если же мы циклом обходим 20 изображений, то скрипт не успевает обработать все картинки его выполнение сбрасывается сервером. Сейчас используется стандартный хостинг, коих в интернете много по процессору данных нет, а вот по оперативе 128 мб. Т.к. количество картинок предполагается большое, то рассматривается вопрос приобретения у хостинг провайдера сервера. Здесь важным становится вопрос, на что делать больший упор? Взять дополнительно 1 vCPU или 2 (4) гб оперативы.

Может ли кто-то просветить по вопросу, хватит ли для обработки указанного числа фотографий 1гб оперативной памяти и vCPU со следующими характеристиками: Используются процессоры Intel Xeon E5 стандартных серий. Базовая частота ядра не ниже 2,4 GHz.
  • Вопрос задан
  • 198 просмотров
Решения вопроса 1
Adamos
@Adamos
Сама по себе процедура особых вопросов не вызывает и решается при помощи toolkit AcImage.

Зачем для такой простой задачи какой-то тулкит, жрущий память на свои абстракции? Валите фотки в папку, которую по крону лопатит convert (на сервере же наверняка есть ImageMagick?) - и никакие ограничения пыха вас не будут парить в принципе.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
maaGames
@maaGames
Погроммирую программы
По идее, если обработка идёт именно в цикле (то есть по очереди!!!!), то совершенно без разницы 1 или 100500 фотографий. Загружаете, обрабатываете, выгружаете, следующее фото.
Похоже, что ограничение именно по процессору (по времени выполнения скрипта). Как вариант, отсылать на сервер изображения по одному и запускать скрипт для каждого изображения по отдельности.
Т.е. я на 100% уверен, что нужно перепроектировать код, простая покупка бОльших мощностей маскирует прблему. но не решает её. Будет не 20, а 30 изображений и опять будет таймаут. Будет разрешение выше и опять будет таймаут. Я бы попробовал перепроектировать код.
Ответ написан
Комментировать
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Почему бы не ресайзить картинки налету и не кешировать их? - https://habr.com/ru/post/489544/
Скорее всего:
- все картинки не нужно ресайзить по определению,
- не нужно хранить ресайзы, которые давно не запрашивались
- нужно кешировать ресайзы на денек-другой максимум
- все будет делаться автоматически!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы