Проблемы с рестартом сервера
Добавлено: Пт июл 21, 2017 10:43 am
Рестарт afserver не всегда проходит гладко. Иногда он сильно затягивается, особенно если на момент отключения (или сбоя) в системе было зарегистрировано большое количество джобов, либо присутствовали джобы с гигантским количеством тасков. А иногда Афанасий вовсе не может прочитать информацию о джобах, и их приходится переотправлять заново, вручную сверяясь с количеством уже отсчитанного материала.
Я понимаю что хранение в файлах было сделано в пользу отказа от СУБД. Приведу немного статистики:
168129 directories, 189760 files это на текущие 952 джоба. (Действительно ли каждому текстовчку нужна своя директория? не является ли это узким горлышком?)
Просто листинг этой папки (/var/tmp/afanasy/jobs) происходил дольше 20 минут. (сопоставимо с продолжительностью поднятия сервера). Забавно то, что файл с листингом весит больше, чем сама папка.
У меня есть пара идей по этому поводу(может быть и не состоятельных).
Стартовать сервер пустым и добавлять старые таски в фоне - это по крайней мере избавит от простоя фермы.
Сделать джобы переносимыми объектами, чтобы их можно было заархивировать, разархивировать, пренести на другой сервер в текущем виде, с текущим прогрессом и статусом. при таком подходе можно было бы все завершённые задачи автоматически архивировать, заменять содержимое /var/tmp/afanasy/jobs/0/6.afanasy_testing.afanasy1-4 на один tar, и афанасий подгружал бы его в самую последнюю очередь, или не подгружал бы вовсе до тех пор, пока юзер не захочет его разархиваировать ( для пересчёта или просмотра логов ).
Ещё я заметил, что потребление оперативной памяти афсервером до падения меньше, чем после восстановления, предполагаю, что после операции чтения джобов не высвобождается часть памяти.
Я понимаю что хранение в файлах было сделано в пользу отказа от СУБД. Приведу немного статистики:
168129 directories, 189760 files это на текущие 952 джоба. (Действительно ли каждому текстовчку нужна своя директория? не является ли это узким горлышком?)
Просто листинг этой папки (/var/tmp/afanasy/jobs) происходил дольше 20 минут. (сопоставимо с продолжительностью поднятия сервера). Забавно то, что файл с листингом весит больше, чем сама папка.
У меня есть пара идей по этому поводу(может быть и не состоятельных).
Стартовать сервер пустым и добавлять старые таски в фоне - это по крайней мере избавит от простоя фермы.
Сделать джобы переносимыми объектами, чтобы их можно было заархивировать, разархивировать, пренести на другой сервер в текущем виде, с текущим прогрессом и статусом. при таком подходе можно было бы все завершённые задачи автоматически архивировать, заменять содержимое /var/tmp/afanasy/jobs/0/6.afanasy_testing.afanasy1-4 на один tar, и афанасий подгружал бы его в самую последнюю очередь, или не подгружал бы вовсе до тех пор, пока юзер не захочет его разархиваировать ( для пересчёта или просмотра логов ).
Ещё я заметил, что потребление оперативной памяти афсервером до падения меньше, чем после восстановления, предполагаю, что после операции чтения джобов не высвобождается часть памяти.