1b.app
Скопирована ссылка -

Предложения по оптимизации работы крона

Столкнулся с проблемой, что после запуска массовых изменений задача легла в минутный крон и на 2.5 часа парализовала работу.
Предложение:
1. Действия, запущенные вручную не должны останавливать выполнение автоматических действий. Предполагаю, что решением будет создание отдельного крона для ручных задач.
2. В моем случае, я запустил пересохранение 120 000 карточек контактов. За 1.5 часа ни одна картачка не изменилась, но крон завис и решить проблему удалось только с помощь Вашей помощи. Считаю просто необходимым создание хотя бы приемитивного деспечера задач, где можно ручками убить зависший или слишком долгий процесс без помощи разработчика.
3. При выполнении большого количества задач в процессе выполнении видно, что по части карточек или процессов изменения уже произошли, а часть еще в очереди. При выполнении п1, даже длительные процессы не будут нарушать работу жизненноважных процессов. Но, если запустить "слишком много" действий, то крон висит, но действия не отслеживаются. Субъективно кажется, что бокс не может принять столько задач и просто зависает навсегда. Возможно стоит ограничить по максимальному количеству задач в пакете? Своеобразная защита от дурака.
Благодарю за возможность участвовать в процессе усовершенствования бокса :)

Ответы:

1. Нет так нельзя сделать , потому если ваши массовые операции одновременно с минутным кроном что-то будут делать с одим и тем же контактом - вы получите потерю данных
2. Резкие прерывы крона - это тоже будет проблема так как вы очевидно не понимаете работает он сейчас или просто ждет
3. все зависит от того сколько памяти вы выделили кронам, можно дать столько памяти что их хватит и на обработку 200К записей
24.02.2021, 14:58

Спасибо Игорь.
Сейчас запустил массовым действием смену этапа по 5500 процессам. Через пару минут вижу, что уже 500 процессов сменили этап, остальные еще ждут очереди. Я вижу что процесс идет.
При запуске массового изменения 120 000 карточек клиентов за 1,5 часа не изменилось ни одной карточки. Крон просто остановился.
Поэтому смею делать вывод, что иногда дело не в ожидании, а именно в сбое из-за большого количества задач. Из такой ситуации нужно предусмотреть выход. Сделать автопроверку и перезапуск, если он завис (если ручной перезапуск отклоняете. Или сделать защиту, которая бы не позволяла превышать лимит возможностей.
А так я делаю стандартную операцию и получаю зависание. Похоже на баг.
3. Выделение памяти происходит вами? Или речь об общей памяти сервера? Сколько выделено сейчас?
24.02.2021, 18:22

К слову, запустил в 5500 процессах сменил этап. На этапе выполняю отправку сообщения в вайбер бот.
Процедура заняла час. Минутный крон все это время висит. Получается, что в рабочее время я рассылку сделать не могу, потому что остановятся остальные процессы. Я согласен, что как Вы особенностей системы не знаю, поэтому мои предложения могут быть неверными. Но я вижу проблематику. А какое решение видите Вы? Изменение ресурсов? Ведь клиенты могут быть и с большими задачами?
24.02.2021, 18:53


Пташкин Сергей
Клиент писал/а:
Поэтому смею делать вывод, что иногда дело не в ожидании, а именно в сбое из-за большого количества задач. Из такой ситуации нужно предусмотреть выход. Сделать автопроверку и перезапуск, если он завис (если ручной перезапуск отклоняете. Или сделать защиту, которая бы не позволяла превышать лимит возможностей.

перезапуски и проверки делаются настройками сервера а не системы, система не может понять работает крон или вылетел по памяти. Регулирование памяти это так же на стороне сервера.


Пташкин Сергей
Клиент писал/а:
А так я делаю стандартную операцию и получаю зависание. Похоже на баг.

я вам описал причину почему так происходит, так как система устанавливается на разных серверах с разной мощностью то я не праве ограничить коллиство данных отправляемых в крон


Пташкин Сергей
Клиент писал/а:
3. Выделение памяти происходит вами? Или речь об общей памяти сервера? Сколько выделено сейчас?

Памяти (memory_limit) выделяется на сервере для php скриптов, настраивает системный администратор, в данном случае у вас 512мегабайт для запуска минутного крона


Пташкин Сергей
Клиент писал/а:
К слову, запустил в 5500 процессах сменил этап. На этапе выполняю отправку сообщения в вайбер бот.
Процедура заняла час. Минутный крон все это время висит. Получается, что в рабочее время я рассылку сделать не могу, потому что остановятся остальные процессы. Я согласен, что как Вы особенностей системы не знаю, поэтому мои предложения могут быть неверными. Но я вижу проблематику. А какое решение видите Вы? Изменение ресурсов? Ведь клиенты могут быть и с большими задачами?

решение тут просто увеличение памяти
25.02.2021, 14:21

[/quote]
решение тут просто увеличение памяти
[/quote]
Спасибо. Изменили на 4 гб. Пробуем
01.03.2021, 14:59

Игорь, у нас не удалось самостоятельно справиться с задачей, прошу вашей помощи.
Вчера поменяли в файле php.ini
memory_limit = 512M на memory_limit = 4096M после чего перезагружаю апач
После этого минутный крон выполняет задачи по 2 минуты. Сегодня на утро файл php.ini был пустой. И вы сказали, что мы допустили ошибку.
Сегодня восстановили файл и все заработало. Повторно внесли изменения и проблема повторилась.
Игорь, я не настаиваю на том, чтоб вы занимались нашим обучением. Мы готовы доверить эту задачу профессионалам. Можете оценить эту задачу и мы ее оплатим. Спасибо
02.03.2021, 14:58


Пташкин Сергей
Клиент писал/а:
Игорь, у нас не удалось самостоятельно справиться с задачей, прошу вашей помощи.
Вчера поменяли в файле php.ini
memory_limit = 512M на memory_limit = 4096M после чего перезагружаю апач
После этого минутный крон выполняет задачи по 2 минуты. Сегодня на утро файл php.ini был пустой. И вы сказали, что мы допустили ошибку.
Сегодня восстановили файл и все заработало. Повторно внесли изменения и проблема повторилась.
Игорь, я не настаиваю на том, чтоб вы занимались нашим обучением. Мы готовы доверить эту задачу профессионалам. Можете оценить эту задачу и мы ее оплатим. Спасибо

02.03.2021, 15:06

Ок. На балансе 9 часов доработок. Можно запускать. Если не сложно, напишите в чем мы допустили ошибку.
02.03.2021, 15:14

Сейчас в кроне часто висит процесс ShopSupplier_Processor_Avail
выполняется 70 секунд
Раньше такого не наблюдал. Не пойму причину.
02.03.2021, 15:35

Добрый день. Игорь, задача не срочная, но хотелось бы уточнить дедлайн, чтоб понимать, что о задаче не забыли. Спасибо
04.03.2021, 09:39

Прошу так же помощи со свободным местом на диске. Дайте рекомендации, пожалуйста. Нужно увеличивать диск, или нужно что-то почистить?
09.03.2021, 10:42


Пташкин Сергей
Клиент писал/а:
Ок. На балансе 9 часов доработок. Можно запускать. Если не сложно, напишите в чем мы допустили ошибку.

настройки я прописал, 1ч списал


Пташкин Сергей
Клиент писал/а:
Сейчас в кроне часто висит процесс ShopSupplier_Processor_Avail
выполняется 70 секунд
Раньше такого не наблюдал. Не пойму причину.

это пересчет наличия товаров


Пташкин Сергей
Клиент писал/а:
Прошу так же помощи со свободным местом на диске. Дайте рекомендации, пожалуйста. Нужно увеличивать диск, или нужно что-то почистить?

я почистил логи на диске и мусор , память освободилась
09.03.2021, 14:56

Спасибо, Игорь.
Могли бы вы предложить перечень работ, которые рекомендуется делать на сервере с определенной периодичностью. Чтоб я понимал, что раз в месяц (или два) необходимо оплатить и провести ряд сервисных работ.

Отпопвляю 2000 сообщений через турбосмс. Крон виснет на час. Пожелания по оптимизации остаются в силе, чтоб в это время не останавливались минутные действия. Может еще что-то придумаете.
12.03.2021, 14:33


Пташкин Сергей
Клиент писал/а:

Спасибо, Игорь.
Могли бы вы предложить перечень работ, которые рекомендуется делать на сервере с определенной периодичностью. Чтоб я понимал, что раз в месяц (или два) необходимо оплатить и провести ряд сервисных работ.

раз в 3 месяцы лучше чистить кеш nginx


Пташкин Сергей
Клиент писал/а:

Отпопвляю 2000 сообщений через турбосмс. Крон виснет на час. Пожелания по оптимизации остаются в силе, чтоб в это время не останавливались минутные действия. Может еще что-то придумаете.

это будет с следующей версии системы
12.03.2021, 16:11

Пожалуйста, присоединяйтесь к диалогу. Если вам есть что сказать - пожалуйста, напишите комментарий. Для входа потребуется мобильный телефон и смс-код для идентификации. Войти и написать комментарий