Проблемы с рестартом сервера

Ответить
Аватара пользователя
AlexeySmolenchuk
Сообщения: 40
Зарегистрирован: Пт июл 14, 2017 10:38 am

Проблемы с рестартом сервера

Сообщение AlexeySmolenchuk »

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

Я понимаю что хранение в файлах было сделано в пользу отказа от СУБД. Приведу немного статистики:
168129 directories, 189760 files это на текущие 952 джоба. (Действительно ли каждому текстовчку нужна своя директория? не является ли это узким горлышком?)
Просто листинг этой папки (/var/tmp/afanasy/jobs) происходил дольше 20 минут. (сопоставимо с продолжительностью поднятия сервера). Забавно то, что файл с листингом весит больше, чем сама папка.

У меня есть пара идей по этому поводу(может быть и не состоятельных).
Стартовать сервер пустым и добавлять старые таски в фоне - это по крайней мере избавит от простоя фермы.
Сделать джобы переносимыми объектами, чтобы их можно было заархивировать, разархивировать, пренести на другой сервер в текущем виде, с текущим прогрессом и статусом. при таком подходе можно было бы все завершённые задачи автоматически архивировать, заменять содержимое /var/tmp/afanasy/jobs/0/6.afanasy_testing.afanasy1-4 на один tar, и афанасий подгружал бы его в самую последнюю очередь, или не подгружал бы вовсе до тех пор, пока юзер не захочет его разархиваировать ( для пересчёта или просмотра логов ).

Ещё я заметил, что потребление оперативной памяти афсервером до падения меньше, чем после восстановления, предполагаю, что после операции чтения джобов не высвобождается часть памяти.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Проблемы с рестартом сервера

Сообщение Timur »

Чтение задач в фоновом режиме - думаю что хорошоя идея. Надо будет реализовать.
Архивирование задач - тут по сложнее, надо много чего продумать, но тоже полезно будет.
Утечку оперативки - тут надо проверять на месте каким-нить valgrind-ом.

А вообще, у вас виснет сервер? Как часто? Какая платформа?
У нас тоже иногда до 1000 задач доходит, правдо редко такое.
Но проблем с (пере-)загрузкой еще не испытывали, так как практически не перегружаем его.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Аватара пользователя
AlexeySmolenchuk
Сообщения: 40
Зарегистрирован: Пт июл 14, 2017 10:38 am

Re: Проблемы с рестартом сервера

Сообщение AlexeySmolenchuk »

Он скорее не виснет, а именно падает.
Бывает раз в месяц, а бывает по три раза подряд за один день. Профилактических перезагрузок тоже не делаем.

Кстати очень легко обрушить сервак если отправить на него пустой джоб(или таск)
обычне если кто-нибудь в первый раз пишет сабмитилку для какой-нить задачи, то обязательно наступает на эти грабли.
Но это разумеется не имеет отношения к вышеописанной проблеме.

Сервак на дебиане 8
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Проблемы с рестартом сервера

Сообщение paulwinex »

У меня стабильно падал сервер если я создаю задачу через PythonAPI по всем правилам но не указываю кадры. То есть setNumeric совсем не вызывается а соответствующие символы в команду добавлены. Не страшно только если сервер тестовый.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Проблемы с рестартом сервера

Сообщение Timur »

Ок. Я посмотрю. Может он думет что блок нумерик, а кол-во тасков там миллиард (случайное, не инициированное значение), и не хватает памяти. Или что-то типа того.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Ответить