我看到很多cypher查询的cpu接近100%,这是一台强大的机器运行(16核,110 GB RAM,10GB neo4j数据库的SSD等)
有没有办法为db hits之外的其他方面分析cypher查询?例如:cpu使用每个语句,锁等
服务器配置:
的Neo4j的包装器:
wrapper.java.initmemory=31768
wrapper.java.maxmemory=31768
neo4j.properties:
dbms.pagecache.memory=70g
java -XX:+ PrintFlagsFinal -version | grep -e'(Initial \ | Max)HeapSize'
Picked up _JAVA_OPTIONS: -Xmx32g -Xms32g
uintx InitialHeapSize := 34359738368 {product}
uintx MaxHeapSize := 34359738368 {product}
jstack输出: https://www.dropbox.com/s/ktvflamjqoz9dnu/sudo_jstack%20_13453?dl=0
答案 0 :(得分:0)
我不知道如何分析CPU使用情况的特定查询,但您是否配置了Neo4j以允许它使用更多内存?它使用了多少内存?
此外,这是生产中有多个查询命中数据库,还是您自己使用Web控制台进行查询?如果是后者,即使您已取消查询,有时查询仍将继续运行。您可以通过设置query timeout(比如60秒)来帮助缓解这种情况。