@antonowano
Профессиональный самоучка

Как не уронить сайт запуская громадный скрипт в кроне?

У скрипта следующие действия:
1. он скачивает немалый gz архив.
2. распаковывает и считывает вложенный xml.
3. из xml забирает объекты в БД и скачивает фотографии.

При мониторинге выполнения сервер показывает:
a236197df9d94fae875630690b4b1b40.png
С такой нагрузкой сайт становится недоступным.

Подскажите как поступить, можно ли ограничить скрипту количество используемых процессов.
И чего стоит избегать в самом скрипте?
  • Вопрос задан
  • 612 просмотров
Решения вопроса 1
@antonowano Автор вопроса
Профессиональный самоучка
Нашел проблему в скрипте. Функция simplexml_load_file съедал всю ОЗУ, записывая в память здоровенный XML, от чего сервер зависал. После переписи скрипта под класс XMLReader, скрипт перестал съедать весь ОЗУ. Сделал как в примере: как использовать XMLReader.
Спасибо Adamos за подсказку:
Громадные файлы и SimpleXML, прямо скажем, не созданы друг для друга.

Для разбора файла использовал XMLReader
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
v_sadist
@v_sadist
DevOps engineer
Приветствую, топик стартер.
А откуда он скачивает архив? Стоит еще озаботиться вопрос сетевой нагрузки.
Предоставьте скрипт, это поможет лучше продумать решение.
Ответ написан
@mureevms
На каком шаге возникает нагрузка? Если при распаковке, то Как извлечь из tar-архива определенные файлы
Ответ написан
@neol
LA 3.5 при 8 ядрах не выглядит поводом для недоступности сайта.
Может проблема в блокировке таблицы на время обновления БД?
Ответ написан
yarofon
@yarofon
Выполняйте крон на другом сервере. Например, стартуйте инстанс EC2 на амазоне (если не часто).
Ответ написан
Ваш ответ на вопрос

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

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