Шаг 3. Конфигурирование региона данных и ячеек (опциональный)#
Конфигурирование региона данных#
Внимание
Добавляйте переменные в файл с описанием конфигурации inventory.yml.
Для конфигурирования региона данных по умолчанию defaultDataRegionConfigurations используйте переменные:
datagrid_DataRegionConfiguration_name: "default"— изменяет используемое имя дляorg.apache.ignite.configuration.DataRegionConfiguration;datagrid_DataRegionConfiguration_persistenceEnabled: "false"— включает/отключает признак персистентности кластера ISE;datagrid_DataRegionConfiguration_maxSize: "#{16L * 1024 * 1024 * 1024}"— определяет размер региона данных; расчет значения по умолчанию смотрите в таблице «Переменные для подготовки конфигурационного файла кластера DataGrid»;datagrid_DataRegionConfiguration_metricsEnabled: "true"— включает сбор метрик дляorg.apache.ignite.configuration.DataRegionConfiguration;datagrid_DataRegionConfiguration_metricsRateTimeInterval: "1000"— указывает интервал сбора метрик;datagrid_DataRegionConfiguration_checkpointPageBufferSize: "#{18*1024*1024*1024L}"— определяет размер буфера контрольной точки.
Для добавления дополнительных свойств (evictionThreshold или emptyPagesPoolSize) в регионе данных по умолчанию используйте переменную defaultDataRegionConfigurations:
datagrid_defaultdataRegionConfigurations:
persistenceEnabled: "{{ datagrid_DataRegionConfiguration_persistenceEnabled }}"
maxSize: "{{ datagrid_DataRegionConfiguration_maxSize }}"
metricsEnabled: "{{ datagrid_DataRegionConfiguration_metricsEnabled }}"
metricsRateTimeInterval: "{{ datagrid_DataRegionConfiguration_metricsRateTimeInterval }}"
evictionThreshold: "0.8"
emptyPagesPoolSize: "1000"
При добавлении дополнительного региона данных используйте переменную datagrid_dataRegionConfigurations:
datagrid_dataRegionConfigurations:
for_general_app: ## Название региона данных.
maxSize: "#{2L*1024*1024*1024}"
pageEvictionMode: "RANDOM_LRU"
evictionThreshold: "0.8"
emptyPagesPoolSize: "1000"
Включение NUMA#
Для конфигурирования узла DataGrid c NUMA в параметре datagrid_DataRegionConfiguration_numa_strategy:
Установите значение
yes:datagrid_DataRegionConfiguration_numa: yes.Укажите стратегию
org.apache.ignite.mem.InterleavedNumaAllocationStrategy:datagrid_DataRegionConfiguration_numa_strategy: "org.apache.ignite.mem.InterleavedNumaAllocationStrategy".
При включении узла DataGrid c NUMA:
Добавьте свойство
memoryAllocatorв конфигурационный файл в разделdataregion:<property name="memoryAllocator"> <bean class="org.apache.ignite.mem.NumaAllocator"> <constructor-arg> <bean class="{{ datagrid_DataRegionConfiguration_numa_strategy }}"/> </constructor-arg> </bean> </property>Добавьте свойство
-XX:+UseNUMAв JVM-опции.Перенесите библиотеки
ignite-numa-allocatorиз директорииoptionalвlibs.
Подробнее о NUMA читайте в разделе «Многопроцессорные серверы, NUMA» документа «Настройка производительности».
Включение снепшотов#
Снепшоты включены по умолчанию для кластеров с типом persist:
# Значение переменной задано в конфигурации `inventory.yml`.
datagrid_DataRegionConfiguration_persistenceEnabled = true
Чтобы изменить путь хранения снепшотов, воспользуйтесь переменной datagrid_snapshots_dir:
datagrid_snapshots_dir: "/dir/snapdir", default = "{{ datagrid_instance_home }}/snapshot"
После изменения пути хранения снепшотов и переконфигурирования кластера в конфигурационном файле customIgniteConfiguration.xml изменится свойство SnapshotPath.
Конфигурирование ячеек#
Для группировки серверов в ячейки и их дальнейшего использования в одном кластере DataGrid установите значение true в переменной datagrid_use_cells. В конфигурационном файле inventory.yml для каждого сервера задайте переменную datagrid_cell_number="n".
Пример синтаксиса
cluster_datagrid:
vars:
ansible_connection: ssh
ansible_user: sshlogin
ansible_ssh_pass: sshpsw
ansible_become_pass: sshpsw
datagrid_use_cells: true
hosts:
"xx.xx.xx.xx":
ansible_host: "xx.xx.xx.xx"
datagrid_cell_number: "1"
"xx.xx.xx.xy":
ansible_host: "xx.xx.xx.xy"
datagrid_cell_number: "1"
"xx.xx.xx.xz":
ansible_host: "xx.xx.xx.xz"
datagrid_cell_number: "1"
"xx.xx.xy.xx":
ansible_host: "xx.xx.xy.xx"
datagrid_cell_number: "2"
"xx.xx.xy.xy":
ansible_host: "xx.xx.xy.xy"
datagrid_cell_number: "2"
"xx.xx.xy.xz":
ansible_host: "xx.xx.xy.xz"
datagrid_cell_number: "2"