Нагрузка на сервер php + gd

12
J
На сайте с 13.04.2008
Offline
2
#11

увеличивал до 200 MB :)

DA
На сайте с 04.02.2005
Offline
165
#12
Andreyka:
А теперь внимание - правильный совет
Заниматься генерацией картинок должен специальный демон, написанный на php+gd
Отдачей готовых картинок - nginx

Если очень интересует как - могу выложить краткую статью, только дайте больше информации

php+imagemagick

тыщ-пыщ
J
На сайте с 13.04.2008
Offline
2
#13
DJ_AlieN:
php+imagemagick

как варинт - да :)

AN
На сайте с 20.03.2006
Offline
70
#14

Есть один подход к ресайзу картинок, весьма правильный для большинства неспециализированных сайтов. Суть подхода простая - пока картинку не запросил некто явно в ней нуждающийся - не стоит тратить ресурсы на ее ресайз, ватермарки и т.п.

Таким образом, заливаются в админке (ну или там в импорте и т.п.) все картинки в оригинальном виде, а при отображении хтмл кода первый раз вставляются некие конструкции с вызовом ресайзера. Ресайзер отрабатывает только один раз и только когда это реально нужно. Ввиду распределенности запросов от пользователей - даже заливка сотен и тысяч изображений не кладет никакой сервер, а генерятся они по мере надобности. Подход неоднократно использован в деле и показал себя с наилучшей стороны.

Ну а из опыта могу сказать что MagikWand (ImageMagic) работает в среднем втрое быстрее чем GD, соответственно при существенном количестве обрабатываемых изображений он заметно экономит ресурсы. Ну и алгоритмы в нем уж куда лучше чем в GD.

Andreyka
На сайте с 19.02.2005
Offline
822
#15

Кстати, да

Я такое настраивал

Первый раз если файла нет - идет запрос к апачу. Он делает ресайз и выкладывает картинку

Потом уже ее nginx отдает напрямую

Не стоит плодить сущности без необходимости
N9
На сайте с 30.05.2008
Offline
34
#16

Проблемы опустошении памяти при работе с изображениями имеются. А именно если скриптом работать напрямую т.е вызывать скрипт через апач к примеру http://site.ru/convertimg.php - он как-то странно себя ведет, иногда остается в памяти и не умерает пока не перезагрузиш httpd. Выход есть! вызывать данный скрипт из другого скрипта через exec(); и напрямую обращятся к пхп указывая путь до скрипта. (или поставте пхп как cgi)

далее генериться имага гденить в папке под названием cache и отдается уже nginx'ом.

У меня отличнейше работает на галлереи gallery.exali.ru. Если что пишите в личку могу часть исходников скинуть посмотрите.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий