Neo4j知识库:初识Neo4j查询日志分析器 |
原文链接: 查询日志分析器是一个Neo4j桌面应用,用于帮助了解Neo4j企业版服务器查询日志文件。
dbms.logs.query.enabled=true # If the execution of query takes more time than this threshold, # the query is logged. If set to zero then all queries dbms.logs.query.threshold=100ms dbms.logs.query.parameter_logging_enabled=true dbms.logs.query.time_logging_enabled=true dbms.logs.query.allocation_logging_enabled=true dbms.logs.query.page_logging_enabled=true dbms.track_query_cpu_time=true dbms.track_query_allocation=true 一般情况下,设置一个阈值,当请求超过这个时间(示例是100ms,或者设置为0,代表所有请求)时,就会被记录下来。这也意味着,查询日志中记录的请求并不是服务器上的所有查询。但是这个工具仍然可以为你提供一个快速定位可能造成查询瓶颈的方向。 工欲善其事必先利其器。接下来,先看一下如何安装查询日志分析器。 下面我来重点解释一下查询日志分析器。 查询日志分析器 查询日志分析器需要一个query.log文件。你将文件上传到工具中,然后它就开始分析。分析文件完成后,将显示下信息: 查询分析 在Query Analysis标签页中,不同的查询是按 查询次数*平均时间 降序排列的。这样的排序可以将最耗时的查询排在最前面。 The Query(在AvgTime — Avg Mem值的下面) Query Count Filter Highlight Timline Avg Time, Min Tim, Max Time Avg CPU
dbms.logs.query.time_logging_enabled=true dbms.track_query_cpu_time=true Max Planning
dbms.logs.query.time_logging_enabled=true Avg Waiting
dbms.logs.query.time_logging_enabled=true Cache Hits %
dbms.logs.query.page_logging_enabled=true Avg Mem
dbms.logs.query.allocation_logging_enabled=true dbms.track_query_allocation=true Protocol + Clients bolt http embedded 此外,还有一个客户端列表显示,它列出了当前有多少个不同IP向Neo4j服务器发出请求。注意,blot驱动是使用连接池连接数据库的,所以,你能看到1个IP会有多个客户端。 查询日志 Query Log标签页,使用查询日志行作为了标头。更多的信息则需要拖动水平滚动条才能看到。在第一个Query Analysis标签页里选择一个查询点击“Highlight,再点击Filter时,就会跳到这个页面,且只显示你选中的请求日志记录。这时,你可以拷贝这个标签页中的请求和参数去分析一个请求。 Query Timeline Query Timeline是一个实验性的功能,它绘制出了每时间段(默认5分钟)查询总量和每秒种平均查询次数。它是基于日志文件中记录的时间,而不是查询开始时间。通过这张图,可以快速的了解到服务器是什么什么时候请求最多。 相关链接 查询日志分析器的源码在github的 kvegter/query-analyzer-app(上,可以在那里阅读文档和报bug. |