在https://github.com/graphaware/neo4j-php-client使用neo4j docker图像与graphaware的php客户端结合使用时,查询性能似乎存在问题,我甚至不确定它是否是正常/预期的行为。
设定:
问题是在没有查询api 30分钟后,第一个查询需要很长时间,并且会进入5秒的超时(在graphaware客户端中配置)。似乎neo4j需要醒来/热身。之后,查询非常快(约100毫秒)。现在即使在制作中也没有足够的电话让neo4j一直醒着。查询通常相当复杂。
这是正常行为吗?如果是,是否存在解决此问题的常用策略,而不是定期调用api?
答案 0 :(得分:1)
是的,这对Neo4j来说是正常的。 Neo4j缓存最近触及的节点/边缘以使频繁触摸的节点更便宜查询。它会在一段时间后清除该缓存以节省内存。
这是关于如何"温暖"的Neo4j文档。缓存以防止出现问题,但是如果您有一个非常冷的服务器(即不常见的查询),您需要在进行密集查询之前进行预热,否则您将始终遭受冷启动成本。 / p>
https://neo4j.com/developer/kb/warm-the-cache-to-improve-performance-from-cold-start/