1
0
mirror of https://github.com/1C-Company/GitConverter.git synced 2025-03-25 21:29:14 +02:00

Пример

This commit is contained in:
Dmitriy Marmyshev 2018-05-10 19:57:42 +03:00
parent 59244e32e0
commit 6713615cb8

View File

@ -0,0 +1,80 @@
## Цель
Необходимо за максимально короткое время конвертировать историю огромную хранилища.
Предположим, что в оборудовании у нас нет ограничений или мы можем временно привлечь неограниченные ресурсы.
## Настройка сервера хранилищ 1С
Суть: создать множество копий хранилища чтобы параллелизировать получение версий.
* Подключаем на том же сервере (или на отдельном сервере в той же сети) - отдельный SSD-диск
* Поднимаем 3 сервиса хранилищ конфигураций 1С на разных портах - настроенных на разные каталоги диска
* Настраиваем [кэширование сервера хранилищ](Настройка-конвертации-хранилища-1С) в зависимости от количества потоков получения из хранилища
* Копируем текущее состояние хранилища в 3 разных каталога - т.о. на одном SSD-диске 3 независимых копии хранилища. Следите за очередью к диску - может быть 3 шт. - это много, но крутые диски могут и больше!
* Сервер хранилищ - многопоточный - но у него есть ограничение по памяти.
## Настройка репозитория
Суть: необходимо избегать копирование данных с диска на диск - поэтому располагаем хранилище и каталог выгрузок на одном диске
* Размещаем каталог репозитория и каталог выгрузки на одном SSD-диске.
* SSD-диск должен быть отдельным от того, на котором располагается сервер хранилищ 1С, если на одном сервере или сеть между серверами должна быть "прямая".
* В карточке настройки хранилища:
* В **Начальной версии** - указываем очень большое число, например `100000` - т.о. регламентное задание не будет пытаться выгрузить версии из хранилища и будет выполнять только сервисные действия (запуск коммитов, перезапуски итд).
* В **Версии окончания** укажите любое число - это ограничит рег.задание от получения отчета по хранилищу каждый раз - ведь нам нужно быстро догнать историю...
* Укажите расписание запуска "Каждый день, каждые 60 секунд"
## Настройка получения версий
* Устанавливаем ограничения **"Количества подготавливаемых версий"** в настройках из расчета *Объем диска* / **Размер выгрузки** [см тут](Параметры-конвертации).
* Создаем пользователей в каждой копии хранилища 1С с именами "Выгрузка1", "Выгрузка2"... "Выгрузка-N" - из расчета того сколько сможет выдержать параллельных потоков. Для простоты посчитать можно так: `4Гб / Размер cf версии`, например версия конфигурации 500Мб - значит можно начать с 8 потоков на один сервис хранилища, а дальше - следить за памятью сервиса.
* Для каждого пользователя, для каждого сервиса хранилища 1С создаем настройку ["Копии хранилища"](Копии-хранилища) - в нашем примере 24 копии - для каждого настраиваем расписание запуска **"каждый день, каждые 60 секунд"**
* Укажите расписание запуска "Каждый день, каждые 60 секунд"
## Настройка выгрузки в xml
Суть: важно определиться - используем ли [выгрузку изменений](Параметры-конвертации) или нет.
* Для **Выгрузки изменений** настраиваем для каждой очереди выгрузки рабочие диапазоны версий.
* Первая очередь - от 1 версии до 50
* Вторая очередь - от 51 до 100
* Третья очередь - от 101 до 150
* Ограничением количества очередь - является размер диска, куда выгружаются версии
* Не используем **Выгрузку изменений** - создаем столько очередь выгрузки сколько копий хранилищ - 24 шт.
* Укажите расписание запуска очереди "Каждый день, каждые 60 секунд"
## Настройка загрузки метаданных
* Настраиваем количество очередей загрузки метаданных, в нашем примере - 10-20.
* Для каждой очереди загрузки будет запущена конвертация в формат EDT - нам необходимо чтобы было доступно 8 ядер процессора на одну очередь
* Укажите расписание запуска очереди "Каждый день, каждые 60 секунд"
## Количество ядер CPU
Суть: мы предположили, что у нас нет ограничений по оборудованию, поэтому посчитаем сколько нам необходимо.
* 3-4 CPU на сервис хранилища
* 24/2 = 12 CPU на получение из копий хранилищ
* 1 CPU на очередь выгрузки
* 80 CPU - на 10 очередей загрузки
ИТОГО: 110-130 CPU
## RAM для сервера
* 3-4 Гб на сервис хранилища 1С, реально будет работать в диапазоне 2-3Гб.
* 1Гб на очередь выгрузки
* 4Гб на очередь загрузки (с учетом того, что конфигурация cf - всего 500Мб), на 10 очередей
ИТОГО: 80-90 Гб RAM
# РЕЗЮМЕ
Конечно, в любом проекте есть ограничения.
Определите, какие ограничения у вас:
* SSD (очередь к диску, размер)
* CPU
* RAM
Рассчитайте максимальную загрузку сервера.