Шаг 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:

  1. Установите значение yes:

    datagrid_DataRegionConfiguration_numa: yes.

  2. Укажите стратегию org.apache.ignite.mem.InterleavedNumaAllocationStrategy:

    datagrid_DataRegionConfiguration_numa_strategy: "org.apache.ignite.mem.InterleavedNumaAllocationStrategy".

При включении узла DataGrid c NUMA:

  1. Добавьте свойство memoryAllocator в конфигурационный файл в раздел dataregion:

    <property name="memoryAllocator">
      <bean class="org.apache.ignite.mem.NumaAllocator">
        <constructor-arg>
            <bean class="{{ datagrid_DataRegionConfiguration_numa_strategy }}"/>
        </constructor-arg>
      </bean>
    </property>
    
  2. Добавьте свойство -XX:+UseNUMA в JVM-опции.

  3. Перенесите библиотеки 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"