性能追踪工具
IoTDB 支持使用 TRACING
语句来启用/禁用对查询语句的性能追踪,默认处于禁用状态。用户可以使用性能追踪工具来分析某些查询中存在的潜在性能问题。性能分析的日志文件默认存储在 ./data/tracing
目录下。
启用 Tracing:
IoTDB> TRACING ON
禁用 Tracing:
IoTDB> TRACING OFF
由于一个 IoTDB 查询时间主要取决于查询的时间序列数、涉及访问的 Tsfile 文件数、需要扫描的 chunk 总数以及平均每个 chunk 的大小(指该 chunk 中包含的数据点的个数)。因此,目前性能分析包括的内容如下:
- Start time
- Query statement
- Number of series paths
- Number of sequence files
- Statistics of each sequence file
- Number of unSequence files
- Statistics of each unSequence file
- Number of chunks
- Average size of chunks
- Total cost time
Example
例如执行 select * from root
,则 tracing 日志文件的内容会包括以下内容:
Query Id: 2 - Start time: 2020-06-28 10:53:54.727
Query Id: 2 - Query Statement: select * from root
Query Id: 2 - Number of series paths: 3
Query Id: 2 - Number of sequence files: 1
Query Id: 2 - SeqFile_1603336100446-1-0.tsfile root.sg.d1[1, 10000]
Query Id: 2 - Number of unsequence files: 1
Query Id: 2 - UnSeqFile_1603354798303-2-0.tsfile root.sg.d1[9, 1000]
Query Id: 2 - Number of chunks: 3
Query Id: 2 - Average size of chunks: 4113
Query Id: 2 - Total cost time: 11ms
为了避免多个查询同时执行导致输出信息乱序,在每条输出信息前均增加了该次查询的 Query Id,用户可以使用 grep "Query Id: 2" tracing.txt
来提取某次查询的所有追踪信息。