Рекомендуемые JVM-опции для DataGrid#

Ниже приведен минимальный рекомендуемый набор опций для корректной работы DataGrid.

Применение указанных опций позволяет улучшить производительность и стабильность работы продукта.

JVM-опции, которые применяются к OpenJDK 17#

Параметр

Описание

-Djava.net.preferIPv4Stack

Использование протокола IPv4

-Dnetworkaddress.cache.ttl

Используется для указания политики кеширования, успешного резолвинга DNS. Значение указывается как целое число для последующего указания количества времени в секундах, которое необходимо для кеширования успешного поиска. -1 означает «кешировать всегда»

-Djava.io.tmpdir

Переопределение временной директории в JVM

-Dcom.sun.management.jmxremote.port

Указание порта для JMX

-Dcom.sun.management.jmxremote.authenticate

Включение аутентификации для подключения к JMX

-Dcom.sun.management.jmxremote.ssl

Включение SSL для JMX-соединений

-Dcom.sun.management.config.file

Путь к файлу конфигурации JMX

-Dfile.encoding

Задает кодировку по умолчанию

-Dnode.id

Вспомогательный идентификатор для различных интеграций

-Dmodule.id

Вспомогательный идентификатор для различных интеграций

-Djava.security.properties

Задает путь к файлу security.properties, который следует использовать при запуске JVM

-Dgroup.id

Вспомогательный идентификатор для различных интеграций

-Dcom.sun.management.jmxremote

Включение JMX

-Dlog4j2.formatMsgNoLookups

WA к уязвимости старых Log4j2

-Dsun.rmi.dgc.client.gcInterval

Управляет периодичностью запуска сборщика мусора (Full GC) со стороны RMI-клиента

-Dsun.rmi.dgc.server.gcInterval

Управляет периодичностью запуска сборщика мусора (Full GC) со стороны RMI-сервера

JVM-опции, которые применяются к DataGrid#

Параметр

Описание

-DIGNITE_AFFINITY_HISTORY_SIZE=50

Параметр сокращает используемый размер кучи при большом количестве объектов за счет уменьшения хранимой истории аффинити-функции

-DIGNITE_CLUSTER_NAME=

Имя кластера

-DIGNITE_CLUSTER_TYPE=

Тип кластера

-DIGNITE_DIAGNOSTIC_ENABLED=false

Параметр включает вывод дополнительной диагностики в Ignite, выключаем дополнительный вывод в некоторых случаях может оказать дополнительное негативные влияние и усугубить проблему

-DIGNITE_DISCOVERY_DISABLE_CACHE_METRICS_UPDATE=true

Если у параметра установлено значение true, метрики кеша не включаются в сообщение Discovery об обновлении метрик (в этом случае сообщение содержит только кластерные метрики)

-DIGNITE_DUMP_THREADS_ON_FAILURE=false

Включает создание дампа потоков при появлении критической ошибке на узле, выключает дополнительный вывод (в некоторых случаях может оказать дополнительное негативные влияние и усугубить проблему)

-DIGNITE_ENABLE_EXTRA_INDEX_REBUILD_LOGGING=true

Включает расширенное логирование создания/перестроения индексов

-DIGNITE_ENABLE_FORCIBLE_NODE_KILL=true

Установка параметра в true приведет к тому, что клиентские узлы, которые не были доступны с любого из серверных узлов через communicationSpi, будут выведены из топологии кластера

-DIGNITE_EXCHANGE_HISTORY_SIZE=100

Параметр устанавливает размер истории PME

-DIGNITE_HOME=

IGNITE_HOME

-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false

Параметр управляет добавлением хеш-кода загрузчика классов к имени MXBean. При установленном значении true к имени MXBean будет добавлен хеш-кода загрузчика классов, что помогает избежать конфликтов имен при работе с несколькими экземплярами Ignite в одной JVM

-DIGNITE_PROG_NAME=

IGNITE_PROG_NAME

-DIGNITE_QUIET=false

Включает или выключает расширенный режим логирования, значения, которые может принимать true/false

-DIGNITE_REUSE_MEMORY_ON_DEACTIVATE=true

Параметр управляет возможностью повторного использования памяти при деактивации узла

-DIGNITE_SUCCESS_FILE=

IGNITE_SUCCESS_FILE

-DIGNITE_TO_STRING_INCLUDE_SENSITIVE=false

Включает или выключает запись в лог информации, которая может содержать в себе конфиденциальные данный, значения, которые может принимать true/false

-DIGNITE_UPDATE_NOTIFIER=false

Если параметр установлен в false, то DataGrid не будет выполнять проверки наличия новых версий программного обеспечения

-DIGNITE_USE_ASYNC_FILE_IO_FACTORY=true

Если у свойства установлено значение true, DataGrid по умолчанию будет использовать фабрику асинхронного ввода-вывода файлов

-DIGNITE.DEPLOYMENT.ADDITIONAL.CHECK=true

Включение дополнительных проверок LocalDeploymentSpi. Необходим в редких кейсах наследников classloader

JVM-опции только для клиентских узлов, которые применяются к OpenJDK 17#

Параметр

Описание

-DIGNITE_START_CACHES_ON_JOIN=true

Включение инициализации прокси-кешей на клиентском узле во время его запуска

Вендорозависимые JVM-опции#

Openjdk#

Параметр

Описание

-XX:StartFlightRecording=disk={{ ignite_se_jfr_disk }},settings={{ ignite_se_jfr_settings }},maxage={{ ignite_se_jfr_maxage }},maxsize={{ ignite_se_jfr_maxsize }},dumponexit={{ ignite_se_jfr_dumponexit }},{% if ignite_se_jfr_dumponexit == 'True' %}filename={{ ignite_se_diag_dir }}/dumpjfr.jfr{% endif %}

При запуске JVM, JFR будут записываться на диск. Параметрами можно регулировать глубину хранения и детализацию JFR

-XX:FlightRecorderOptions=repository={{ ignite_se_diag_dir }},maxchunksize={{ ignite_se_jfr_maxchunksize }}

Указывает, куда помещать записанные JFR и задает размер chunk

Настройка стабильной топологии (PROP_STABLE_TOPOLOGY)#

В in-memory-кластерах смена паролей от учетных записей DataGrid с помощью REST возможна, только если настроена стабильная топология. Она задается с помощью JVM-опции.

Java#
-DPROP_STABLE_TOPOLOGY="consistID1,consistID2,...,consistIDN"

где consistID1,consistID2,...,consistIDN — согласованные идентификаторы (consistent ID) узлов, которые составляют стабильную топологию.

Важно

На всех узла кластера с помощью опции PROP_STABLE_TOPOLOGY должны передаваться одинаковые списки consistent ID. Узлы, на которых списки будут отличаться, не войдут в тополгию.