不消耗缓存大小> RAM 大小的所有计算机 RAM

  • 本文关键字:RAM 计算机 缓存 ignite
  • 更新时间 :
  • 英文 :


我想使用点燃持久性,但有一些我没有得到。我目前的理解是,在磁盘上的数据比RAM中的数据大之前,Ignite总是会消耗所有的机器内存。让我解释一下:

对于一台有128GB内存的机器,如果我将内存区域设置为100GB,那么Ignite也将消耗100GB的RAM。

<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Default_Region"/>
<property name="initialSize" value="#{100 * 1024 * 1024 * 1024}"/>
</bean>

问题是,我想说我为Ignite保留了128 gb中的100GB,然后其余的溢出到磁盘上。但是如果需要的话,我想确保我有足够的可用内存来启动一些特别的进程。

如果在同一台128GB的机器上,我定义了一个300GB的区域,那么在磁盘大小大于内存大小之前,ignite将消耗所有可用的内存(我认为是机器的80%),但这意味着我不能为其他进程保留超过20%的可用内存。

<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Default_Region"/>
<property name="initialSize" value="#{300 * 1024 * 1024 * 1024}"/>
</bean>

几个问题:

  1. 我的理解正确吗?
  2. 有办法解决这个问题吗?

Thanks a lot

启用本地持久性的Ignite是一个数据库。所有数据都在磁盘上。部分数据也在内存中(希望是100%,但不总是)。

80%的东西是默认的,如果你不指定一个数据区域你会得到什么。如果你指定一个大小,那就是你得到的。因此,将数据区域大小设置为100Gb允许Ignite使用100Gb的内存,并且您存储的任何数据都只在磁盘上。不要将数据区域的大小设置为大于可用的内存量,否则内存中的数据库会突然被磁盘绑定。

<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Default_Region"/>
<property name="initialSize" value="#{100 * 1024 * 1024 * 1024}"/>
<property name="maxSize" value="#{100 * 1024 * 1024 * 1024}"/>
</bean>

用于堆外存储。您还需要考虑Java堆空间。

最新更新