Page 93 - 《软件学报》2021年第5期
P. 93

尤勇  等:一种监控系统的链路跟踪型日志数据的存储设计                                                     1317


                 4.1.2    查询性能
                    根据 LogView 的 id 查询对应日志数据时,首先读取索引文件,查询对应内存块的首地址与偏移量;其次读取
                 数据文件中指定大小的内存块,并根据偏移量读取指定大小的字节;最后进行解压缩,将整个过程称为一次日志
                 查询,该过程花费的时间定义为 Query Time.
                    日志的查询操作具有以下特点.
                    •   偶发性、离散性;
                    •   过程较长,涉及索引检索、数据块读取、解压缩.
                    日志查询不同于传统的应用于 OLTP(on-line transaction processing)服务的数据库(比如 MySQL),OLTP 服
                 务需要进行大量的数据增删改查操作;而日志查询操作则完全相反,仅在需要排查异常时才会需要拉取到完整
                 的日志数据,而这种操作发生的频率远小于日志的存储,所以日志的查询对并发性能的要求不高,并且相应的
                 QPS(query per second)要求同样较低.
                    此处同样采集了线上真实数据,统计了在 2020 年 5 月 1 日 11:00~12:00 期间的日志查询的请求,记录了每
                 分钟内所有的日志查询请求以及对应的平均查询时间,图 10 展示了每分钟内所有查询的平均 Query Time.



















                                            Fig.10    Consuming time of querying logs
                                                   图 10   日志查询的耗时
                    在此小时内,后端存储集群总计接收了 606 238 次日志的查询请求,系统整体在该小时内的 QPS 仅为 168,
                 充分说明了日志查询操作的偶发性、离散性特征.
                    从图 10 中可以看出:大部分的日志查询耗时(query time)在 20ms~80ms 范围内;此外,最小、平均、最大的
                 耗时分别为 20.6ms,32.29ms,78.9ms.整体而言,日志查询的耗时能够满足在第 2.3 节中所提出的 100ms 内的性能
                 要求.

                 4.2   磁盘空间的占用
                    本节从线上真实运行环境中随机选取了存储集群中一台机器上的多组数据文件与索引文件,通过对实际
                 生成的多组文件的分析,能够证实第 3.4 节磁盘空间管理的真实性.时间段同样为 2020 年 5 月 1 日 11:00~12:00,
                 随机选取了 5 组索引文件与数据文件.表 5 的数据展示了对应的几组文件大小,从表格数据得到每组数据文件
                 与索引文件在磁盘中的空间占用大小.
                                                     Table 5  File size
                                                      表 5   文件大小
                                      Application-1  Application-2  Application-3  Application-4  Application-5
                        数据文件(byte)       1.4G        190M        2.8M         1.1M        143K
                        索引文件(byte)      5.8M         3.9M        224K         64K          96K
   88   89   90   91   92   93   94   95   96   97   98