Page 394 - 《软件学报》2025年第9期
P. 394
王尚 等: 基于神经网络的分布式追踪数据压缩和查询方法 4305
此外, 我们发现 Jaeger 在 Q1–Q5 的查询效率均高于 Tempo. 一方面, 实验中 Jaeger 使用内存数据库存储数据
和索引, 相较于 Tempo 而言节省了系统 I/O 时间. 另一方面, Tempo 通过 TraceQL 查询后返回的结果集并非完整
的数据, 需要根据结果集中每条追踪的 ID 进行二次查询, 而 Jaeger 可以直接返回满足查询条件的完整追踪列表.
然而, Jaeger 需要更大的存储空间, 且无法支持对于追踪数据的复杂查询.
4.4 敏感性分析 (RQ3)
NCQT 有一些可能会影响压缩或查询性能的可配置参数, 分别是分组的大小、批处理的大小、模型的学习率
以及是否动态更新. 为了研究这些参数如何影响方法的性能, 我们对其进行了敏感性分析实验. 具体而言, 我们首
先从数据集中选取了 Sock Shop (4.1 GB) 和 Robot Shop (6.0 GB) 作为本节的实验数据. Sock Shop 数据集相对较
小, 而追踪数据的长度平均较长; Robot Shop 数据集则相对较大, 而追踪数据相对较短, 且在第 4.3 节中定义了 11
条查询语句. 选择这两个数据集作为实验对象可以充分研究不同情况下我们的方法受参数影响的敏感程度. 对于
上文提到的每种参数, 我们使用不同的参数值进行实验. 通过比较不同的配置, 我们可以评估每个参数对实验结果
的影响. 与第 4.3 节相同, 本节选取 NCQT-G 作为实验方法, 我们后续验证了上述参数的设置对 NCQT-T 具有相
似的影响.
图 11 展示了 NCQT 在不同分组大小下的压缩性能表现. 其中, 分组大小指的是每个分组包含的追踪数量.考
虑到两个数据中追踪数据的平均长度不同, 我们在不同的数据集上选择了不同的分组大小取值范围. 在追踪长度
较长的 Sock Shop 数据集上, 我们倾向于将分组大小设置为较小的取值; 反之, 我们在追踪长度较短的 Robot Shop
数据集上设置了较小的分组大小. 通过这种方式, 我们确保了 NCQT 在两个数据集上生成的分组数量范围几乎相
同. 从图中可以看出, NCQT 的压缩比随分组大小的增长几乎没有太大变化, 这意味着 NCQT 的压缩效果对分组
大小并不敏感. 我们观察到, 在不同的分组设置下, 无论是冗余抽取阶段产生的索引字典还是编码器压缩阶段产生
的压缩文件, 二者的大小均未产生较大的变化. 这证明了我们冗余抽取阶段产生的中间表示是易于学习的, 无论每
个分组有多少数据量, 模型都有较高的预测精度. 相较于压缩比, 压缩时间受分组大小的影响较为明显. 结果表明,
在实验设置的分组大小取值范围内, 压缩时间随分组大小的增大整体上呈上升趋势. 这是因为 NCQT 的压缩过程
是并行进行的, 当分组大小较小时会产生较多的分组数量, 可以充分利用服务器多核与多卡的优势. 我们发现, 压
缩时间相对分组大小并非严格单调. 当分组数量多于显卡数量时, 会出现多个分组的压缩进程抢占同一 GPU 资源
的情况, 此时增加分组数量可能导致原本耗时最长的 GPU 分担了更多的压缩任务, 从而增加了整体的压缩时间.
需要注意的是, 结果并不意味着分组大小越小越有利于提高压缩效率. 受限于服务器 CPU、内存、显存以及文件
句柄数量等资源, 过多的分组数量会带来严重的资源竞争, 反而会大幅降低压缩效率.
240 压缩比 3 500 240 压缩比 3 500
压缩时间 压缩时间
220 3 000 220 3 000
压缩比 200 2 500 压缩时间 (s) 压缩比 200 2 500 压缩时间 (s)
180 2 000 180 2 000
160 1 500 160 1 500
140 1 000 140 1 000
15 000 20 000 25 000 30 000 35 000 40 000 35 000 45 000 55 000 65 000
分组大小 分组大小
(a) Sock Shop (4.1 GB) (b) Robot Shop (6.0 GB)
图 11 不同分组大小下的压缩性能变化
为了研究分组大小对查询性能的影响, 我们测试了不同分组大小下 NCQT 对 Robot Shop (6.0 GB) 数据集的
查询效率, 结果如图 12 所示. 我们采用了第 4.3 节中定义的查询语句, 分别测量无需解压情况下 (NCQT-Warm) 以

