@MyQuestion
junior-middle fullstack

PHP: как снизить нагрузку на сервер при выполнение тяжёлого скрипта?

Добрый день!

У меня есть скрипт, который перебирает и оптимизирует порядка 100тыс. изображений, но это просто роняет сервере в 504 на некоторое время. Есть ли хорошее решение для оптимизации таких тяжёлых скриптов? Например, снизить нагрузку на сервер, растянув время выполнения скрипта? Что-то вроде функции sleep() - будет ли это эффективным решением? Может посоветуете какие-то адекватные настройки сервера или на что стоит обратить внимание.

Что тут в принципе можно сделать? Впервые столкнулся с подобной ситуацией.
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
Adamos
@Adamos
Эту хренову тучу изображений незачем лопатить пыхом.
Свалил в папочку - и запускай скриптик кроном с выборкой первых, скажем, десяти и обработкой ( + сохранением в другую папку + удалением в этой) их тем же imagemagick, но в командной строке, без выжирания лишней памяти и занятия обработчиков.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@humoured
Вы всё на свете найдёте в коробке с карандашами
Лопатить миллион тысяч изображений можно чем угодно, хоть через php, хоть через богоподобный imgproxy и bash — в зависимости он поставленных задач. Просто запускай скрипт не из браузера а через консоль или Cron. При таком подходе нет ограничения на время выполнения скрипта, хотя и появляются требования к более аккуратному программированию по части утилизации ресурсов.
Ответ написан
Комментировать
sharp97
@sharp97
не фонтан но брызги есть
оптимизируй очередями по 10 например
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Да, sleep немножко облегчит, но вообще маловато информации.

Для начала неплохо бы определить какого ресурса не хватает - памяти, процессора, может диск перегружен.
Если процессор, то посмотрите сколько у вас ядер, и почему ваш скрипт грузит их все.
Возможно сам оптимизирующий софт слишком ресурсоемкий, и существуют альтернативы полегче.
Возможно стоит разбить задачу на части и разбросать планировщиком на ночное время.
Ответ написан
Комментировать
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
ну если в лоб, то nice
и, действительно, непонятно при чем тут пхп.
что такого делает ваш скрипт, что не может сделать imagemagick?
Ответ написан
Ваш ответ на вопрос

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

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