Ignite Apache点燃堆外内存填充

Ignite Apache点燃堆外内存填充,ignite,gridgain,Ignite,Gridgain,我们有以下ignite群集设置配置: ApacheIgnite版本:2.7.5 Ignite持久性已启用(true) 分区模式下的2节点群集 RAM-每个节点210 GB jvmxms和xmx20g 堆外内存最大值:120GB 记录数量——1.6亿 我可以看到以下节点指标: [03:13:31,126][INFO][db-checkpoint-thread-#146%GridA%][GridCacheDatabaseSharedManager] Checkpoint finished [cp

我们有以下ignite群集设置配置:

  • ApacheIgnite版本:2.7.5
  • Ignite持久性已启用(true)
  • 分区模式下的2节点群集
  • RAM-每个节点210 GB
  • jvmxms和xmx20g
  • 堆外内存最大值:120GB
  • 记录数量——1.6亿
我可以看到以下节点指标:

[03:13:31,126][INFO][db-checkpoint-thread-#146%GridA%][GridCacheDatabaseSharedManager] Checkpoint finished [cpId=df22db5b-6ffa-4f5d-b6da-d0e36c0492af, pages=1512, markPos=FileWALPointer [idx=6659, fileOff=249851578, len=49197], walSegmentsCleared=0, walSegmentsCovered=[], markDuration=26ms, pagesWrite=13ms, fsync=312ms, total=351ms]
[03:14:05,346][INFO][grid-timeout-worker-#67%GridA%][IgniteKernal%GridA] 
Metrics for local node (to disable set 'metricsLogFrequency' to 0)
    ^-- Node [id=25a3a57c, name=GridA, uptime=16 days, 22:40:01.512]
    ^-- H/N/C [hosts=10, nodes=10, CPUs=172]
    ^-- CPU [cur=1.17%, avg=4.94%, GC=0%]
    ^-- PageMemory [pages=30333907]
    ^-- Heap [used=3889MB, free=81.01%, comm=20480MB]
    ^-- Off-heap [used=119880MB, free=2.68%, comm=123179MB]
    ^--   sysMemPlc region [used=0MB, free=99.99%, comm=99MB]
    ^--   metastoreMemPlc region [used=0MB, free=99.82%, comm=99MB]
    ^--   Default_Region region [used=119880MB, free=2.44%, comm=122880MB]
    ^--   TxLog region [used=0MB, free=100%, comm=99MB]
    ^-- Ignite persistence [used=253233MB]
    ^--   sysMemPlc region [used=0MB]
    ^--   metastoreMemPlc region [used=unknown]
    ^--   Default_Region region [used=253233MB]
    ^--   TxLog region [used=0MB]
    ^-- Outbound messages queue [size=0]
    ^-- Public thread pool [active=0, idle=0, qSize=0]
    ^-- System thread pool [active=0, idle=6, qSize=0]
ignite节点是否需要重新启动,或者是否应该触发页面替换并释放一些堆外空间?


Edit-2:正如您所看到的,堆外内存可用空间约为2.5%,仍然没有触发页面替换(PR)。找不到有关何时触发PR的主题的任何内容。它是否会在可用空间=0%时触发?如果可用空间达到0%,我的ignite节点是否有可能关闭?当页面替换最终触发时,对查询性能有何影响?

如果在数据区域填充后启用持久性,则会触发该操作。

Pavel,正如您所看到的,堆外内存可用空间约为2.5%,仍然没有触发页面替换(PR)。找不到有关何时触发PR的主题的任何内容。它是否会在可用空间=0%时触发?如果可用空间达到0%,我的ignite节点是否有可能关闭?当页面替换触发时对查询性能有何影响?一旦内存中没有空间容纳记录,页面替换就会开始。例如,如果您插入一条1KB的记录,而RAM中只剩下500字节的可用空间,则会触发替换。您的节点不会失败,但性能会受到影响,因为Ignite将开始主动使用磁盘来满足您的请求。@dmagda:感谢您的帮助。当堆外可用空间接近5%时,我们一直在重新启动ignite节点。从技术上讲,重启应该更糟糕,对吗?[由于堆外内存变空,现在在接下来的几个小时内,我的所有查询都将进入磁盘,堆外内存将缓慢重新填充]因此,重启是更好的选择还是允许页面替换?您可以在重启时预热内存,以便所有或大部分查询都在内存记录中运行。无论如何,如果内存不足,重新启动不是解决方案。页面替换允许Ignite使用磁盘,并在内存不足时保持运行。好好利用这一点。而且,如果过量的磁盘使用开始影响SLA,则扩展集群以分配更多内存,页面替换将停止。