常规配置建议
1.配置默认集群存储
创建集群时,存储配置会使用默认的分布区。虽然建议创建新的分布区,但使用默认分布区并对其进行配置以满足需求也是可以的。
要获取默认存储配置,可以使用cluster config show ignite.zone
命令,以下是 JSON 格式的默认配置示例。
提示
在 Ignite 3 中,配置文件支持 HOCON
或 JSON
格式。
{
"ignite" : {
"zone" : {
"defaultDataStorage" : "aipersist",
"defaultDistributionZone" : {
"dataNodesAutoAdjust" : 2147483647,
"dataNodesAutoAdjustScaleDown" : 2147483647,
"dataNodesAutoAdjustScaleUp" : 0,
"dataStorage" : {
"dataRegion" : "default",
"name" : "aipersist"
},
"filter" : "$..*",
"partitions" : 25,
"replicas" : 1,
"zoneId" : 0
},
"distributionZones" : [ ],
"globalIdCounter" : 0
}
}
}
要更改新分布区的存储类型,可以将zone.defaultDataStorage
值更改为aimem
或rocksDb
。还可以通过设置zone.defaultDistrubutionZone.dataStorage.dataRegion
参数来更改新分布区的默认数据区,更改数据区参数后需要重启集群。
还可以更改自定义的分布区的这些属性。
可以使用cluster config show ignite.aipersist
命令获取数据区的信息,以下是默认数据区的示例:
{
"ignite" : {
"checkpoint" : {
"checkpointDelayMillis" : 200,
"checkpointThreads" : 4,
"compactionThreads" : 4,
"frequency" : 180000,
"frequencyDeviation" : 40,
"logReadLockThresholdTimeout" : 0,
"readLockTimeout" : 10000,
"useAsyncFileIoFactory" : true
},
"defaultRegion" : {
"memoryAllocator" : {
"type" : "unsafe"
},
"replacementMode" : "CLOCK",
"size" : 268435456
},
"pageSize" : 16384,
"regions" : [ ]
}
}
要更改默认数据区的大小,可以使用cluster config update
命令:
cluster config update --url http://localhost:10300 ignite.aipersist.defaultRegion.size:9999999
2.配置本地路径
Ignite 生成的所有文件默认都存储在安装文件夹中,但是根据需要可以更改文件的路径。可以使用{IGNITE_HOME}\etc\vars.env
文件更改文件的存储路径,具体如下:
- 工作目录,用于存储数据;
- 日志文件夹,用于存储日志;
- 加载库文件的文件夹;
- 用于设置默认节点的配置文件。
另外在节点配置中还可以设置:
- 通过
ignite.system.cmgPath
属性来配置存储集群管理组信息的路径; - 通过
ignite.system.metastoragePath
属性来配置存储元数据信息的路径; - 通过
ignite.system.partitionsBasePath
属性来配置存储数据分区的路径; - 通过
ignite.system.partitionsLogPath
属性来配置存储 Raft 日志的路径,这些日志与节点日志是分开的。
3.配置堆内存使用
Ignite 将数据存储在堆外内存中,根据需要为每个存储引擎单独保留。但是 Java 堆内存仍用于处理程序实时生成的中间对象,例如:
- 集群和节点元数据。这包括有关哪些节点是集群的一部分、内部日志、表版本链、哪些数据被锁定用于事务以及 Ignite 正常运行所需的所有其他信息;
- 中间查询结果,在特别大的数据集上执行查询时可能会导致更多的堆内存消耗;
- 计算操作可能会使用堆内存来存储数据,具体堆内存消耗量因不同的业务需求而异。
Ignite 为堆空间默认分配 16GB,根据具体的环境和业务需求,可以更改该值。较小的堆意味着更快的垃圾回收,以及分配给 Ignite 的资源更少。更大的堆允许处理更多的对象,但垃圾回收可能需要更长的时间。
要配置堆空间,可以使用{IGNITE_HOME}\etc\vars.env
文件中存储的 JVM_MAX_MEM
和 JVM_MIN_MEM
变量,这些变量相当于在 JVM 中设置 Xmx
和 Xms
变量。
4.配置服务端日志
Ignite 3 默认使用 java.util.logging
(JUL) 日志框架。它利用etc/ignite.java.util.logging.properties
配置文件并将日志输出到LOG_DIR
变量指向的文件夹(可以在etc/vars.env
文件中配置)。日志默认存储在{IGNITE_HOME}/log
文件夹中,可以使用java.util.logging.config.file
属性提供自定义配置文件。
有关配置 JUL 日志的更多信息,请参加 Oracle 文档中的 Java 日志。
提示
还可以为 Java 客户端配置客户端日志。
18624049226