如何减少Neo4j图中Louvain算法的运行时间和内存利用率?

问题描述 投票:0回答:1

这是我的数据:Neo4j data

这是CQL:

"call algo.louvain.stream('','',{weightProperty: 'weight'}) YIELD nodeId,community return algo.getNodeById(nodeId).mno as name ,community","/mno-rel.csv",{});

这是neo4j配置:

  • dbms.memory.heap.initial_size = 71440m
  • dbms.memory.heap.max_size = 71440m
  • dbms.memory.pagecache.size = 20g

[Neo4j版本:neo4j-community-3.5.8

当我运行上述算法时,将花费我5个小时并占用70 g以上的内存。

请帮助我减少内存和时间。我非常感谢:D

================================================ =========================

回答logisima问题:

总商店大小:60.71 GiB处理器:40总可用免费共享buff /缓存可用内存:125G 114G 1.4G 337M 9.7G 9.8G

debug.log20-02-05 23:52:54.946 + 0000 WARN [o.n.k.i.c.VmPauseMonitorComponent]检测到VM停止世界暂停:{pauseTime = 3882,gcTime = 21,gcCount = 1}2020-02-05 23:53:05.327 + 0000 INFO [o.n.k.i.p.程序] [algo-1] Louvain 0%round 32020-02-05 23:53:15.327 + 0000 INFO [o.n.k.i.p.程序] [algo-2] Louvain 77%第三轮2020-02-05 23:53:25.385 + 0000 INFO [o.n.k.i.p.程序] [algo-3] Louvain 10%round 42020-02-05 23:53:35.378 + 0000 INFO [o.n.k.i.p.程序] [algo-1] Louvain 90%round 42020-02-05 23:53:45.379 + 0000 INFO [o.n.k.i.p.程序] [algo-4] Louvain 26%round 52020-02-05 23:53:59.480 + 0000 INFO [o.n.k.i.p.程序] [neo4j.BoltWorker-4 [bolt] [/10.3.99.111:49607]] Louvain 100%等级:7社区:7689984 q:0.98087120318070562020-02-05 23:54:03.543 + 0000警告[o.n.k.i.c.VmPauseMonitorComponent]检测到VM停止世界暂停:{pauseTime = 197,gcTime = 202,gcCount = 1}2020-02-05 23:54:07.130 + 0000警告[o.n.k.i.c.VmPauseMonitorComponent]检测到VM停止世界暂停:{pauseTime = 184,gcTime = 243,gcCount = 1}2020-02-05 23:54:21.578 + 0000 INFO [o.n.k.i.p.程序] [algo-2] Louvain 0%round 12020-02-05 23:54:23.528 + 0000警告[o.n.k.i.c.VmPauseMonitorComponent]检测到VM停止世界暂停:{pauseTime = 366,gcTime = 380,gcCount = 1}2020-02-05 23:54:26.352 + 0000警告[o.n.k.i.c.VmPauseMonitorComponent]检测到VM停止世界暂停:{pauseTime = 121,gcTime = 217,gcCount = 1}2020-02-05 23:54:31.579 + 0000 INFO [o.n.k.i.p.程序] [algo-1] Louvain 80%第一轮2020-02-05 23:54:40.056 + 0000警告[o.n.k.i.c.VmPauseMonitorComponent]检测到VM停止世界暂停:{pauseTime = 5693,gcTime = 0,gcCount = 0}2020-02-05 23:54:41.580 + 0000 INFO [o.n.k.i.p.程序] [algo-2] Louvain 98%第一轮2020-02-05 23:54:47.314 + 0000 INFO [o.n.k.i.p.程序] [neo4j.BoltWorker-4 [bolt] [/10.3.99.111:49607]] Louvain 100%等级:8社区:7689984 q:-1.02020-02-05 23:55:11.177 + 0000警告[o.n.k.i.c.VmPauseMonitorComponent]检测到VM停止世界暂停:{pauseTime = 5269,gcTime = 0,gcCount = 0}

neo4j neo4j-apoc
1个回答
0
投票

您正在对整个图表进行放大,即在您所有节点的类型和关系上。

我不确定这是一个好主意,因为您没有齐次图,因此通常这样的结果是不相关的(取决于数据和用例)。

这就是为什么在图形算法中,如果需要的话,会有一个系统来创建投影图形。

为了优化,您能否回答以下问题:*数据库的大小(以Gb为单位)(浏览器中为:sysinfo)*您有多少个CPU /核心?*您有多少RAM?* debug.log

中是否有内容

欢呼声

© www.soinside.com 2019 - 2024. All rights reserved.