第三届大会回顾第4期 | OpenHarmony 高性能日志系统 HiLog 的设计与实现

科创闲谈 2025-06-23 趣味人生 78776

演讲嘉宾 | 吴圣垚

回顾整理 | 廖 涛

排版校对 | 宋夕明

wKgZPGg31LmAZeeEAATALAwuA-A254.png

嘉宾介绍

研究分论坛

吴圣垚,中国科学院软件研究所技术专家。

正文内容

日志系统记录了操作系统运行时发生的各种事件,包括信息变更、错误和异常等,对系统的状态监控、错误检测与诊断、恢复与备份、性能优化以及安全审计等起着关键性作用。OpenHarmony的Hilog日志系统是如何构建的,又有哪些关键的特性和功能?中国科学院软件研究所工程师吴圣垚在第三届OpenHarmony技术大会上进行了精彩介绍。

为了解决OpenHarmony开源项目运营初期尚未构建日志系统,且当今主流日志系统在技术架构层面难以满足OpenHarmony发展需求的痛点,作者本人及其团队设计并实现了高性能日志系统HiLog。HiLog为OpenHarmony提供了一种可追踪、可审计和可操作的方法,以便了解系统的状态、故障和性能。适用于OpenHarmony应用、硬件开发及测试人员,是每个开发人员的必备、入门工具。

Hilog在性能原则、资源分配原则、设备兼容性原则和数据安全原则等方面均提出了创新的解决方案,具体为:

一、高性能解决方案:从软件层面提高日志吞吐量,降低丢包率。首先,针对读、写日志任务的特征,基于IO复用、异步Socket等模型,优化IPC过程。以此提高日志传输效率,降低日志传输过程中的损耗。

wKgZPGg31LqAVRPVAABkXz7ljkE083.png

此外,基于双向循环链表实现缓冲区;并实现单生产者多消费者的缓冲区管理机制。以此提高缓冲区处理能力,降低日志读写的损耗。

二、资源分配解决方案:对操作系统资源和日志系统资源进行合理分配,日志系统的运转不能占用过多的操作系统资源;每个写日志业务不能占用过多的日志系统资源。在进程流控上,限制每进程的日志写入,降低IPC压力;在业务流控上,进一步限制多进程业务的日志写入,降低缓冲区管理压力。

wKgZPGg31LqAKKIgAAFBrLSuKLI933.png

三、设备兼容性解决方案:能够在资源较为丰富的移动端设备上体现高性能特性;能够在资源受限的小型/轻量级设备上运行。首先,采用模块化的体系结构,在移动设备上构建hilogd,实现高性能日志处理。在小型设备上不构建hilogd,降低CPU和内存资源消耗。

wKgZPGg31LqAYveOAAF92HK9UhE475.png

其次,对日志流进行压缩。高流量使用场景,将日志流直接输入压缩算法,然后持久化。大幅降低存储资源消耗;此外,采取轮转文件压缩方案,低流量实用场景,将日志写入文件轮盘,压缩文件,删除源文件。在避免日志大量丢失的前提下,降低存储资源消耗。

wKgZPGg31LqAQjqLAACRpt9r4yI593.png

四、数据安全解决方案:保护流经日志系统的关键信息;尽可能减少额外的性能开销。基于格式化占位符的变量匿名化:在格式化占位符中添加隐私标识。HiLog可以识别该隐私标识,并基于隐私开关,对变量进行匿名化或非匿名化处理。以此构建轻量级数据安全能力。

wKgZPGg31LqAUOabAAEA5m4wo4A525.png

目前,Hilog日志系统的相关工作已经发表在软件学报(文章链接:http://www.jos.org.cn/1000-9825/6900.html),且代码已合入了OpenHarmony主线(项目地址:https://gitee.com/openharmony/hiviewdfx_hilog),在包括HarmonyOS NEXT在内的多个OpenHarmony发行版上进行了稳定的运行,为系统开发者、应用开发者和数据分析师提供了重要的日志数据。

在OpenHarmony迅速发展以及万物智联场景逐步演进的背景下,OpenHarmony的日志系统将面临哪些挑战和机遇?作者本人提出了以下2点展望:

一、目前业界对于日志系统的数据安全的研究较少,HiLog的轻量化数据安全能力是对于日志数据安全问题的初步探索,虽然可以一定程度上遮蔽敏感数据信息,但是仍需要开发者和审核人员投入精力对日志参数进行修改和验证,具备一定的人工成本。后续希望能够引入一些自动化的判断机制,例如采用机器学习的手段对日志参数的上下文进行分析,进而自动化地判断该参数是否属于隐私信息,减少人工审核成本,提高数据安全能力的易用性。

二、OpenHarmony作为分布式操作系统,原生支持分布式能力。分布式能力涉及到多台设备的协同运作,即日志信息会在多台设备上产生,然而,目前HiLog尚不具备从多设备统一收集日志并进行管理的能力。这种缺陷对于分布式能力的开发和调试造成了一定的不便,具备优化的空间。构造分布式日志系统有两个重要的问题需要解决,其一是设备间高速、高稳定的连接问题,其二是多设备的时钟同步问题。对于第一个问题,可以等待OpenHarmony的软总线(softbus)技术成熟后,利用softbus作为稳定高速的日志传输的通道;对于第二个问题,可以考虑基于精确时间协议(precision time protocol,PTP)实现无线局域网内的多设备时钟同步。

审核编辑 黄宇