Ограничить потребление ресурсов скриптом

Есть скрипт парсинга данных с других сайтов. Вся информация заносится в промежуточную таблицу.
По окончании парсинга берутся все новые записи из промежуточной таблицы >10000 записей, и циклом обрабатываются. И заносятся в окончательную таблицу.
image
(нагрузка на процессор)
И на этапе обработки этого большого количества записей возникает максимальная нагрузка на сервер, из за чего остальные сайты отдают 504 ошибку, и вообще сервер становится недееспособным на минут 20, пока не закончится обработка данных.
Надо как то ограничить потребление ресурсов, пусть оно выполняется дольше, но не ложит сервер.
В качестве решения придумал пока использовать usleep() в цикле, но как-то не доволен этим вариантом, может есть более правильное решение?
  • Вопрос задан
  • 4524 просмотра
Решения вопроса 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Если таблица в mysql — то вряд ли, сам скрипт в этом случае CPU не кушает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
librarian
@librarian
Нормальных способов именно ограничить толком нет, разве что cpulimit. Но он будет делать ровно то же самое, что и usleep, просто не будет давать процессор скрипту сверх меры.
Ответ написан
Может я конечно не прав, но не пробовали запускать скрипт под наименьшим приоритетом через nice?
Ответ написан
Anton_from_Amber
@Anton_from_Amber
Разделите задачу на более элементарные блоки-этапы и порционно обрабатывайте.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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