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

1316                                     Journal of Software  软件学报 Vol.32, No.5,  May 2021

                                                 Table 2  Write performance
                                                      表 2   写入性能
                                LogView 总量   TPS   CPU 平均使用率(%)     LogView 平均字节量(byte)   内存块数量
                       线上 A     173 060 000   47K       34.31               1 830          1 209 022
                       线下 B      59 320 000   16K       43.18               1 043          240 495

                                           Table 3    Byte distribution of LogViews (%)
                                              表 3  LogView 的字节分布情况(%)
                                    0~0.5KB   0.5KB~1KB  1KB~2KB    2KB~5KB   5KB~1MB    1MB~
                            线上 A     15.12      30.49      40.38      10.5      3.47      0.04
                            线下 B     27.68       44        21.61      5.1        1.6      0.01
                                                   Table 4  Hardware load
                                                      表 4   硬件负载
                                      CPU 使用率(%)            内存使用率(%)              硬盘使用率(%)

                                   Min    Avg    Max     Min    Avg    Max    Min    Avg    Max
                          线上 A    29.56   34.31  56.84  59.10   59.12  59.28   0.1   5.83   83.7
                          线下 B    26.68   43.18  78.67  81.59   81.62  81.64   0.5   24.71  100
                    表 2 中的第 1 行数据指出线上机器 A 在该小时内共处理完成了 173 060 000 条 LogView 日志,单台机器的
                 TPS 达到了 47K,而在这段时间内的 CPU 平均使用率仅为 34.31%,说明 TPS 还有很大的提升空间,即该机器还
                 能处理更多的日志数据,而整个线上存储集群存在 150 台机器,存储集群整体的 TPS 大概为 6.88M(150×47K)的
                 水平,完全满足了日志存储的性能要求;此外,每条 LogView 的平均字节量为 1 830byte(压缩后),并且在存储数据
                 文件时在内存中共计创建了 1 209 022 个内存块,用于 LogView 的批量存储.表 2 中的第 2 行数据则是线下机器
                 B 的对应数据.
                    表 3 给出了线上线下两台机器在该时间段内所有 LogView 的字节量(压缩后)分布情况.以线上机器 A 为例,
                 数据说明大部分 LogView 的数据量都在 KB 级别.虽然 MB 级别的 LogView 占比较小,但由于 LogView 的总数
                 十分庞大,MB 级别的 LogView 仍然高达 6 万多条.这进一步证实了第 1.3 节中提到的 LogView 的数据特征.
                    表 4 对应的是两台机器在该小时内 3 项重要的硬件指标数据.在指标数据采集时,采集了秒级的 CPU 使用
                 率、内存平均使用率、磁盘平均使用率,并计算了小时内的最小、平均、最大的指标数据.以线下机器 B 为例,
                 在此小时内,平均的 CPU 使用率、内存使用率、磁盘使用率的平均值分别为 43.18%,81.62%,24.71%.此时,机器
                 B 的 TPS 达到了 16K 的水平.从表 4 和图 9 的硬件性能数据可见:虽然硬盘利用率在某些时间内达到了 100%,
                 但仅仅是短暂出现,大部分情况下都在 80%以下.说明这段时间内的 TPS 同样还有提升的空间,这也体现了单台
                 机器很高的并发性能.
















                                              Fig.9    Disk util-rate of the offline B
                                               图 9   线下机器 B 的硬盘使用率
   87   88   89   90   91   92   93   94   95   96   97