Page 492 - 《软件学报》2024年第4期
P. 492

2070                                                       软件学报  2024  年第  35  卷第  4  期


                 占, 保障日志资源的合理分配. 流量控制功能将日志系统写日志资源从公共资源转化为了每个程序的私有资源, 一
                 方面有助于保护各个程序的日志资源使用权, 另一方面可以增加开发者的责任和动力去规范程序的写日志速率.

                                            80                             45
                                            70                             40
                                                                           35
                                            60
                                                  丢包率 (开启流控)
                                                  丢包率 (关闭流控)               30
                                            50    CPU 占用率 (开启流控)
                                            L A (%)  40   CPU 占用率 (关闭流控)   25  CPU 占用率 (%)
                                                                           20
                                            30                             15
                                            20                             10
                                                                           5
                                            10
                                                                           0
                                             0
                                              0      5      10     15     20
                                                        V input_A  (KB/s)
                           图 12 开启/关闭    HiLog  的流量控制功能时的日志丢包率          L A  和  hilogd 的  CPU  占用率

                  4.3   HiLog  持久化性能分析
                    日志持久化是日志系统的重要功能之一, 其中重要的指标是持久化丢包率和压缩率. 持久化丢包率越低说明
                 在持久化阶段的信息损失量越少, 日志系统可以将更全面的日志保存到存储空间中; 而越低的压缩率说明在保存
                 相同信息的条件下, 日志系统可以节省更多的磁盘空间. 在以下测试中, 持久化丢包率                         L p 和持久化压缩率    C p 的计
                 算公式为:
                                                          N input − N disk
                                                      L p =                                           (3)
                                                             N input
                                                             S file
                                                     C p =                                            (4)
                                                         (1− L p )×S input
                 其中, N inpu 和 t  N dis 分别代表写入的日志数量和持久化到硬盘上的日志数量, S inpu 和       t  S fil 分别代表写入的日志大
                               k
                                                                                     e
                 小和持久化到硬盘上的日志文件           (或压缩文件) 大小, 压缩策略采用流压缩.
                    本文首先对     HiLog  的持久化丢包率进行了测试, 重点考量了硬件性能和日志条数对持久化丢包率的影响, 如
                 图  13(a) 所示. 可以看到总体上     HiLog  日志持久化丢包率低于        6‰, 通过对   L p -N inpu 的最小二乘法拟合, 发现
                                                                                   t
                 HiLog  日志系统在所有测试平台上都表现出较高的稳定性, 即持久化丢包率随日志数量没有明显的变化.

                         15                                     300
                                   Hi3516DV300                          HiLog (RPI3B)
                                   RPI3B                                Log (RPI3B)
                                                                250                      232.2
                                   DAYU200                              HiLog 拟合曲线
                                   Hi3516DV300 拟合曲线                     Log 拟合曲线
                         10                                     200
                                   RPI3B 拟合曲线
                        L p  (‰)   DAYU200 拟合曲线                 L p  (%)  150       125.2
                          5                                     100
                                                                              53.4
                                                                 50
                                                                     13.4
                                                                       1.8    2.2    2.2    2.3
                          0                                       0
                           0    50 000  100 000  150 000  200 000  0    50 000  100 000  150 000  200 000
                                        N input  (条)                            N input  (条)
                              (a) 探究硬件平台对 HiLog 的 L p  的影响           (b) 在相同硬件平台比较 HiLog 和 Log 的 L p
                                      图 13 HiLog  和  Log  持久化丢包率  L p 随  N inpu 的变化趋势
                                                                         t
   487   488   489   490   491   492   493   494   495   496   497