在使用neo4j对接器映像时,在https://github.com/graphaware/neo4j-php-client上使用graphaware的php客户端时,查询性能似乎存在问题,我甚至不确定它是否正常/有意行为。
设置:
问题是,在没有查询api 30分钟之后,第一个查询花费了很长时间,并且运行到了5秒的超时时间(在graphaware客户端中配置)。看来neo4j需要醒来/热身。之后,查询速度非常快(~100 ms)。现在,即使在生产中,也没有足够的调用使neo4j始终处于清醒状态。一般情况下,查询相当复杂。
这是正常行为吗?如果是的话,是否有共同的策略来解决这个问题,而不是定期调用api?
发布于 2018-06-08 20:39:44
是的,这对Neo4j来说是正常的。Neo4j缓存最近接触到节点/边缘,使得频繁访问的节点更容易查询。它在一段时间后清除该缓存以节省内存。
下面是关于如何“加热”缓存以防止出现问题的Neo4j文档,但是,如果您有一个相当冷的服务器(例如,不频繁的查询),那么在进行激烈的查询之前,您将需要对其进行热身处理,否则您将始终承受冷启动成本。
https://neo4j.com/developer/kb/warm-the-cache-to-improve-performance-from-cold-start/
https://stackoverflow.com/questions/50765331
复制相似问题