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 的硬盘使用率