1b.app
Скопійоване посилання -

Пропозиції щодо оптимізації роботи крона

Зіткнувся із проблемою, що після запуску масових змін завдання лягло у хвилинний крон і на 2.5 години паралізувало роботу.
Пропозиція:
1. Дії, запущені вручну, не повинні зупиняти виконання автоматичних дій. Припускаю, що рішення буде створення окремого крона для ручних завдань.
2. У моєму випадку я запустив перезбереження 120 000 карток контактів. За 1.5 години жодна картка не змінилася, але крон завис і вирішити проблему вдалося лише за допомогою Вашої допомоги. Вважаю просто необхідним створення хоча б прийнятного деспечера завдань, де можна ручками вбити завислий або занадто довгий процес без допомоги розробника.
3. При виконанні великої кількості завдань у процесі виконання видно, що щодо карток чи процесів зміни вже відбулися, а частина ще у черзі. За виконання п1, навіть тривалі процеси нічого очікувати порушувати роботу жизненноважных процесів. Але, якщо запустити "надто багато" дій, то крон висить, але дії не відстежуються. Суб'єктивно здається, що бокс не може п
Оригінальне питання доступне на версії: ru

Відповіді:

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

Дякую Ігорю.
Зараз запустив масовою дією зміну етапу з 5500 процесів. За кілька хвилин бачу, що вже 500 процесів змінили етап, інші ще чекають на черги. Я бачу, що процес йде.
Під час запуску масової зміни 120 000 карток клієнтів за 1,5 години не змінилося жодної картки. Крон просто зупинився.
Тому смію робити висновок, що інколи справа не в очікуванні, а саме в збої через велику кількість завдань. З такої ситуації слід передбачити вихід. Зробити автоперевірку та перезапуск, якщо він завис (якщо ручний перезапуск відхиляєте. Або зробити захист, який би не дозволяв перевищувати ліміт можливостей).
А так я роблю стандартну операцію та отримую зависання. Схоже на баг.
3. Виділення пам'яті відбувається вами? Чи мова про спільну пам'ять сервера? Скільки виділено зараз?
24.02.2021, 18:22
Оригінальний коментар доступний на версії: ru

До речі, запустив у 5500 процесах змінив етап. На етапі виконую відправлення повідомлення у вайбер бот.
Процедура зайняла годину. Хвилинний крон весь цей час висить. Виходить, що в робочий час я розсилку зробити не можу, тому що зупиняться інші процеси. Я згоден, що як Ви особливостей системи не знаю, то мої пропозиції можуть бути невірними. Але бачу проблематику. А яке рішення Ви бачите? Зміна ресурсів? Адже клієнти можуть бути з великими завданнями?
24.02.2021, 18:53
Оригінальний коментар доступний на версії: ru


Пташкін Сергій
Клієнт писав/ла:
Тому смію робити висновок, що інколи справа не в очікуванні, а саме в збої через велику кількість завдань. З такої ситуації слід передбачити вихід. Зробити автоперевірку та перезапуск, якщо він завис (якщо ручний перезапуск відхиляєте. Або зробити захист, який би не дозволяв перевищувати ліміт можливостей).

Перезапуски та перевірки робляться налаштуваннями сервера а не системи, система не може зрозуміти працює крон або вилетів по пам'яті. Регулювання пам'яті це на стороні сервера.

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

я вам описав причину чому так відбувається, так як система встановлюється на різних серверах з різною потужністю то я не праві обмежити кількість даних, що відправляються в крон

Пташкін Сергій
Клієнт писав/ла:
3. Виділення пам'яті відбувається вами? Чи мова про спільну пам'ять сервера? Скільки виділено зараз?

Пам'яті (memory_limit) виділяється на сервері для php скриптів, налаштовує системний адміністратор, в даному випадку у вас 512 мегабайт для запуску хвилинного крона

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

рішення тут просто збільшення пам'яті
25.02.2021, 14:21
Оригінальний коментар доступний на версії: ru

[/quote]
рішення тут просто збільшення пам'яті
[/quote]
Дякую. Змінили на 4 гігабайти. Пробуємо
01.03.2021, 14:59
Оригінальний коментар доступний на версії: ru

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


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

1год
02.03.2021, 15:06
Оригінальний коментар доступний на версії: ru

Ок. На балансі 9 годин доопрацювань. Можна запускати. Якщо не складно, напишіть у чому ми припустилися помилки.
02.03.2021, 15:14
Оригінальний коментар доступний на версії: ru

Зараз у кроні часто висить процес ShopSupplier_Processor_Avail
виконується 70 секунд
Раніше такого не спостерігав. Чи не зрозумію причину.
02.03.2021, 15:35
Оригінальний коментар доступний на версії: ru

Добрий день. Ігоре, завдання не термінове, але хотілося б уточнити дедлайн, щоб розуміти, що про завдання не забули. Дякую
04.03.2021, 09:39
Оригінальний коментар доступний на версії: ru

Прошу також допомоги з вільним місцем на диску. Дайте рекомендації будь ласка. Чи потрібно збільшувати диск, чи потрібно щось почистити?
09.03.2021, 10:42
Оригінальний коментар доступний на версії: ru


Пташкін Сергій
Клієнт писав/ла:
Ок. На балансі 9 годин доопрацювань. Можна запускати. Якщо не складно, напишіть у чому ми припустилися помилки.

налаштування я прописав, 1ч списав

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

це перерахунок наявності товарів

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

я почистив логи на диску та сміття, пам'ять звільнилася
09.03.2021, 14:56
Оригінальний коментар доступний на версії: ru

Дякую, Ігорю.
Чи могли б ви запропонувати перелік робіт, які рекомендується робити на сервері з певною періодичністю. Щоб я розумів, що раз на місяць (або два) потрібно сплатити та провести ряд сервісних робіт.
Відправляю 2000 повідомлень через турбосмс. Крон висне на годину. Побажання щодо оптимізації залишаються чинними, щоб у цей час не зупинялися хвилинні події. Може, ще щось придумаєте.
12.03.2021, 14:33
Оригінальний коментар доступний на версії: ru


Пташкін Сергій
Клієнт писав/ла:
Дякую, Ігорю.
Чи могли б ви запропонувати перелік робіт, які рекомендується робити на сервері з певною періодичністю. Щоб я розумів, що раз на місяць (або два) потрібно сплатити та провести ряд сервісних робіт.

раз на 3 місяці краще чистити кеш nginx

Пташкін Сергій
Клієнт писав/ла:
Відправляю 2000 повідомлень через турбосмс. Крон висне на годину. Побажання щодо оптимізації залишаються чинними, щоб у цей час не зупинялися хвилинні події. Може, ще щось придумаєте.

це буде з наступної версії системи
12.03.2021, 16:11
Оригінальний коментар доступний на версії: ru

Будь ласка, приєднуйтесь до діалогу. Якщо вам є що сказати – будь ласка, напишіть коментар. Для входу потрібний мобільний телефон та смс-код для ідентифікації. Увійти та написати коментар