Page 389 - 《软件学报》2025年第9期
P. 389

4300                                                       软件学报  2025  年第  36  卷第  9  期


                 步实验. 在小数据集的生成上, 我们使用同样的方式部署微服务系统和发送请求, 唯一的不同是我们缩小了收集追
                 踪数据的时间窗口以减少数据量.

                                                      表 2 实验数据集

                    微服务系统                           语言                       服务数量      追踪数量       大小
                                                                                        134 143   9.8 GB
                    Train Ticket             Java, NodeJS, Python, Go           41
                                                                                        13 000   975 MB
                                                                                        187 701   4.1 GB
                     Sock Shop                  Java, NodeJS, Go                14
                                                                                        31 881   702 MB
                                                                                        519 975   6.0 GB
                    Robot Shop             Java, NodeJS, Python, Go, PHP        12
                                                                                        72 000   851 MB
                                                                                        491 125   5.8 GB
                   Astronomy Shop  Java, NodeJS, Python, Go, PHP.NET, C++, Kotlin, Ruby, Rust  14
                                                                                        80 568   981 MB

                 4.1.2    评估指标
                    为了衡量压缩的效果, 我们使用压缩比            (CR) 作为评估有效性的指标. 它被广泛用于压缩方法的评估. 其定义如下:

                                                         原始文件大小
                                                    CR =                                              (4)
                                                        压缩后文件大小
                    在给定数据集中, 原始文件大小是固定的, 不同方法生成的压缩后文件大小不同. 压缩后的文件越小, 压缩比
                 越大, 表示压缩更有效.

                 4.1.3    对比方法
                    在压缩方面, 我们使用传统压缩算法和基于神经网络的压缩算法与本文提出的                            NCQT  方法对比. 具体而言,
                 我们选择了    gzip、bzip2  和  lzma 这  3  种传统压缩算法, 同时引入了两种最新的神经网络压缩方法进行对比.
                    ● TRACE [33] . TRACE  是一种基于单层  Transformer 的无损压缩算法, 它引入     Transformer 以并行地构建历史
                 依赖关系, 并设计了一个控制器降低参数更新开销以加快压缩过程.
                    ● DZip [27] . DZip  是一种基于  GRU  的序列数据压缩算法, 它采用了一种基于自适应和半自适应训练的混合架
                 构, 在多种数据类型上压缩效果出色.
                    在搜索方面, 我们将      NCQT  与现有的追踪查询工具进行比较, 具体工具如下.
                    ● Jaeger [22] . Jaeger 是一个开源的分布式追踪系统, 其中的    Jaeger Query  提供了接口, 支持用户根据时间范围、
                 服务、字段等查询分布式跟踪数据.
                    ● Grafana Tempo [21] . Grafana Tempo (简称  Tempo) 是一个开源的分布式追踪后端, 专注于长期存储和检索大
                 规模分布式追踪数据. Tempo       实现了追踪查询语句        TraceQL, 允许用户精确、高效地查询满足指定条件的追踪或
                 跨度.

                 4.2   与通用压缩算法的压缩效果和效率对比           (RQ1)
                    为了研究    NCQT  的压缩效果, 我们使用      NCQT  和对比方法对     4  个微服务系统收集的追踪数据集进行了压缩.
                 我们采用   Transformer 和  GRU  两种网络结构作为编码器, 即      NCQT-Transformer (简写为  NCQT-T) 和  NCQT-GRU
                 (简写为  NCQT-G). 为了确保对比实验的公平性, NCQT-T          采用了与   TRACE  相同的网络结构, 而      NCQT-G  采用了
                 与  DZip  相同的网络结构, 模型参数均为默认值.
                    我们首先在小文件数据集上进行了初步验证, 结果如表                  3  所示. 我们统计了所有方法压缩后的文件大小, 其中
                 对比方法仅产生单个压缩文件, 而           NCQT  的压缩文件由索引表和压缩的追踪数据两部分组成, 除此之外, 我们还
                 记录了冗余抽取阶段后所有中间文件的大小. 在传统压缩算法中, gzip、bzip2                    和  lzma 平均可以达到    19.8、31.5
                 和  40.0  的压缩比, 其中, lzma 在所有数据集上均展现最佳的压缩效果. TRACE             和  DZip  在  4  个数据集中分别可以
                 达到平均   41.4 和  42.1 的压缩比, 在多数数据集上, DZip 比   TRACE  压缩比更高, 但在     Robot Shop 数据集上, TRACE
                 表现出更好的压缩效果. 通过对比发现, 基于神经网络的压缩方法在多数数据集上优于传统压缩算法. 以                                  Train
   384   385   386   387   388   389   390   391   392   393   394