openEuler操作系统核心技术与行业应用实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 智能调优工具:A-Tune

近几十年来,随着硬件和应用软件的不断发展,Linux内核变得越来越复杂,整个Linux操作系统也变得越来越庞大。在openEuler开源操作系统中,使用sysctl-a|wc-l命令获取的内核参数总数就超过1000个;整个系统,从底层的CPU、加速器、网卡,到编译器、操作系统、中间件框架,再到上层应用,可调节的参数总数超过7000个,而大部分用户只使用了这些参数的默认配置,因此无法充分发挥系统的最佳性能。然而,在针对特定的应用场景进行参数优化时,存在以下几个方面的难题。

(1)参数数量多,且参数间存在依赖关系。

(2)上层应用系统种类众多,不同应用系统的参数不同。

(3)每个应用的负载复杂多样,不同负载对应的最优参数值也不同。

为了解决这些难题,openEuler提供了智能调优工具A-Tune,来帮助用户通过自动化手段对操作系统的参数进行调优。

A-Tune的整体架构如图2-2所示,其整体包含三部分:A-Tune客户端、A-Tune服务器端和A-Tune引擎端。

图2-2 A-Tune的整体架构

A-Tune客户端是一个命令行工具,用于接受用户提交的请求命令。

A-Tune服务器端需要部署在调优机器上,包含一个前端gRPC服务层和本地HTTP服务层。gRPC服务层负责优化库管理和对外提供调优服务(智能决策和自动调优)。本地HTTP服务层包括MPI(Model Plugin Interface)/CPI(Configurator Plugin Interface),它们负责与系统配置进行交互,完成数据采集、系统参数配置等任务。

A-Tune引擎端是一个远程HTTP服务,包括AI引擎,负责对上层提供机器学习能力,主要包括应用感知、数据监控、重要参数选择、模型训练和自动参数优化。

目前,A-Tune主要提供两种能力:智能决策和自动调优。

智能决策的基本原理是先采集操作系统的数据,然后通过AI引擎中的聚类算法和分类算法,对采集到的数据进行业务负载类型识别,从优化配置数据库中提取适合当前负载类型的优化配置参数,并将它们应用到被调优的操作系统上。

A-Tune工具的智能决策具备以下功能。

● 重要特征分析:自动选择重要特征,剔除冗余特征,实现精准用户画像。

● 两层分类模型:通过分类算法,准确识别当前负载。

● 负载变化感知:主动识别应用负载的变化,实现自适应调优。

自动调优的基本原理是基于系统或应用的配置参数及性能评价指标,利用AI引擎中的参数搜索算法反复迭代,最终得到性能最优的参数配置。

A-Tune工具的自动调优具备以下功能。

● 自动选择重要的调优参数:减少搜索空间,提升训练效率。

● 调优算法构建:用户可以从适用场景、参数类型、性能要求等方面选择最优算法。

● 知识库构建:将当前负载特征和最优参数加入知识库,以提升后续调优效率。