Page 495 - 《软件学报》2024年第4期
P. 495
吴圣垚 等: HiLog: OpenHarmony 的高性能日志系统 2073
5 总结与讨论
本文主要工作是为开源操作系统 OpenHarmony 设计并实现了 HiLog 日志系统. HiLog 负责存储并管理包括
内核日志、系统日志以及三方日志等各种类型的日志信息, 为系统开发者和应用开发者提供日志读写、压缩、存
储等功能. 目前, HiLog 已在包括 HarmonyOS 在内的多个 OpenHarmony 发行版上进行了稳定的运行, 为系统开发
者、应用开发者和数据分析师提供了重要的日志数据. 同时, 作为开源项目, HiLog 日志系统已受到国内外开发者
的广泛关注, 相关代码已合入 OpenHarmony 主线. 经过本文的理论和实验分析, HiLog 的优势如下.
(1) HiLog 拥有很高的日志吞吐量和稳定性, 通过高效的 IPC 模型和缓冲区结构设计提高日志读写效率. 在日
志写入阶段, HiLog 具备极高的日志吞吐量; 在日志持久化阶段, HiLog 具备远低于 Log 的丢包率. 满足了性能
需求.
(2) HiLog 创新性地加入了流量控制功能, 可以有效地平衡写日志资源的占用并降低 CPU 资源消耗. 同时将
写日志资源从一种公共资源转化为了每个程序的私有资源, 鼓励开发者规范程序的写日志速率, 促进操作系统生
态和谐. 满足了资源分配需求.
(3) HiLog 提供轻量化的数据安全能力, 未使用公开标识标记的参数都会被掩码隐藏, 降低系统敏感数据或用
户的隐私信息的泄露风险. 并且此功能对系统资源消耗极小, 不会影响写日志速率. 一定程度上满足了数据安全
需求.
(4) HiLog 考虑了面向资源受限设备的兼容性, 通过良好的模块化设计可以在轻量设备上分离用户态缓冲区
及其管理模块, 降低系统资源占用. 同时 HiLog 提供日志持久化压缩功能, 可以有效节约设备的存储空间, 空间节
约效率可达 96.5%. 满足了设备兼容性需求.
同时, 也反映出 HiLog 的一些问题与改进空间.
(1) 目前业界对于日志系统的数据安全的研究较少, HiLog 的轻量化数据安全能力是对于日志数据安全问题
的初步探索, 虽然可以一定程度上遮蔽敏感数据信息, 但是仍需要开发者和审核人员投入精力对日志参数进行修
改和验证, 具备一定的人工成本. 后续希望能够引入一些自动化的判断机制, 例如采用机器学习的手段对日志参数
的上下文进行分析, 进而自动化地判断该参数是否属于隐私信息, 减少人工审核成本, 提高数据安全能力的易
用性.
(2) OpenHarmony 作为分布式操作系统, 原生支持分布式能力. 分布式能力涉及多台设备的协同运作, 即日志
信息会在多台设备上产生, 然而目前 HiLog 尚不具备从多设备统一收集日志并进行管理的能力. 这种缺陷对于分
布式能力的开发和调试造成了一定的不便, 具备优化的空间. 构造分布式日志系统有两个重要的问题需要解决, 其
一是设备间高速、高稳定的连接问题, 其二是多设备的时钟同步问题. 对于第 1 个问题, 可以等待 OpenHarmony
的软总线 (SoftBus) 技术成熟后, 利用 SoftBus 作为稳定高速的日志传输的通道; 对于第 2 个问题, 可以考虑基于精
确时间协议 (precision time protocol, PTP) 实现无线局域网内的多设备时钟同步. 使 HiLog 成为更具 OpenHarmony
特色的分布式的日志系统.
References:
[1] Beckett D. Combined log system. Computer Networks and ISDN Systems, 1995, 27(6): 1089–1096. [doi: 10.1016/0169-7552(95)00013-
W]
[2] He PJ, Zhu JM, He SL, Li J, Lyu MR. Towards automated log parsing for large-scale log data analysis. IEEE Trans. on Dependable and
Secure Computing, 2018, 15(6): 931–944. [doi: 10.1109/TDSC.2017.2762673]
[3] Landauer M, Skopik F, Wurzenberger M, Rauber A. System log clustering approaches for cyber security applications: A survey.
Computers & Security, 2020, 92: 101739. [doi: 10.1016/j.cose.2020.101739]
[4] Dumais S, Jeffries R, Russell DM, Tang D, Teevan J. Understanding user behavior through log data and analysis. In: Olson JS, Kellogg
WA, eds. Ways of Knowing in HCI. New York: Springer, 2014. 349–372. [doi: 10.1007/978-1-4939-0378-8_14]
[5] Zhao X, Rodrigues K, Luo Y, Stumm M, Yuan D, Zhou YY. Log20: Fully automated optimal placement of log printing statements under
specified overhead threshold. In: Proc. of the 26th Symp. on Operating Systems Principles. Shanghai: Association for Computing