mirror of
https://github.com/1C-Company/GitConverter.git
synced 2025-03-25 21:29:14 +02:00
Пример
This commit is contained in:
parent
59244e32e0
commit
6713615cb8
80
Максимум-скорости-на-историю.md
Normal file
80
Максимум-скорости-на-историю.md
Normal 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
|
||||
|
||||
Рассчитайте максимальную загрузку сервера.
|
Loading…
x
Reference in New Issue
Block a user