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工具的自动调优具备以下功能。
● 自动选择重要的调优参数:减少搜索空间,提升训练效率。
● 调优算法构建:用户可以从适用场景、参数类型、性能要求等方面选择最优算法。
● 知识库构建:将当前负载特征和最优参数加入知识库,以提升后续调优效率。