@MyQuestion
junior-middle fullstack

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

Добрый день!

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

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

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

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

Войти через центр авторизации
Похожие вопросы