【发布时间】:2023-01-05 18:53:28
【问题描述】:
我正在 Apache Ignite 中尝试本机持久性。我的设置当前是本地的单节点集群。我通过在我的数据区域中添加此属性来启用它
<property name="persistenceEnabled" value="true"/>
我的完整数据区域配置如下
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="dr.local.input.trade"/>
<property name="persistenceEnabled" value="true"/>
<property name="metricsEnabled" value="true"/>
<property name="initialSize" value="#{200 * 1024 * 1024}"/>
<property name="maxSize" value="#{500 * 1024 * 1024}"/>
<property name="pageEvictionMode" value="RANDOM_2_LRU"/>
</bean>
现在条目被持久化了,也就是说,如果我关闭 Ignite 并重新启动它,那么我的数据就会回到缓存中。
我看到显着的性能下降。与非持久数据区域相比,put 操作延迟增加了大约 35%。我已经参考了 Ignite 持久性调整页面。从中我挑选出以下属性及其属性
| Property | Value |
|---|---|
| WAL Modes | LOG_ONLY |
| walCompactionLevel | 3 |
| walCompationEnabled | true |
| writeThrottlingEnabled | true |
| checkpointBufferSize | 512 mb |
| checkpointFrequency | 5 minutes |
还有什么我可以调整的吗?我上面提到的性能损失是典型的还是可以降低更多?
我还尝试使用 JConsole 查看与持久性相关的 JMX 指标。我正在检查 org.apache.368239c8.ignitelocal."Persistent Store" 下的指标。这里提到的所有指标都显示为 0。数据肯定是持久的,我可以在 Ignite 工作目录和 WAL 目录中看到。我在看错误的指标吗?请帮忙。
【问题讨论】:
-
您的 DataRegion 配置是什么?它的大小是否与以前的内存配置相同?说到指标,您必须明确启用它们。是否仅涉及写入或读取操作也受到影响?
-
编辑了我的问题,添加了数据区域配置。我通过提供与 JMX 相关的 JVM 参数启用了 JMX 指标。我可以看到所有其他指标。我没有收到您的问题“它的大小是否与内存配置中的大小保持一致?”
标签: caching persistence ignite