网易首页 > 网易号 > 正文 申请入驻

操作系统自动化定制:Wayfinder

0
分享至

Wayfinder:操作系统自动化定制

Wayfinder:Automated Operating System Specialization

https://arxiv.org/pdf/2603.23425


摘要

操作系统专用化是一种众所周知的方法,用于优化特定应用程序的性能、内存使用、安全性或其他重要指标。为应用程序专用化操作系统通常是一个需要深厚专业知识的手动过程。通过配置进行专用化非常适合自动化;然而,由于现代操作系统配置空间的庞大规模、量化该空间的难度、评估配置所需的长时间以及大量无效配置的存在,这具有挑战性。因此,现有自动专用化操作系统的尝试局限于开启和关闭功能以最小化内存消耗或攻击面,并且不能针对诸如性能之类的指标。

我们提出了 Wayfinder,一个完全自动且无需专家知识即可专用化操作系统配置的框架。它能够专用化操作系统配置的所有方面(编译/启动/运行时),以实现任何可量化的性能、资源消耗或安全指标,针对在给定硬件设置上处理给定工作负载的应用程序。Wayfinder 由一个自动化操作系统基准测试平台和一个驱动专用化过程的基于神经网络的搜索算法组成。这是通过即时学习哪些配置参数和值对性能影响最大,以及哪些会导致运行时故障来实现的。可选地,在一个应用程序上预训练的模型可以被重用以加速相关应用程序的专用化。我们在两个操作系统、我们的应用程序和两个目标指标上评估了 Wayfinder:Wayfinder 完全自动地识别专用配置,与默认配置相比,应用程序性能提升高达 24%,内存使用减少 8.5%。我们突出了我们神经网络的优势,比竞争方法(随机和贝叶斯)更快达到良好解决方案,并成功在相关应用程序之间迁移知识。

CCS 概念:• 软件及其工程 → 操作系统;软件配置管理和版本控制系统。

关键词:操作系统,专用化

1 引言

主流操作系统(OS)的通用性是以性能、资源消耗或安全性为代价的 [13, 15, 25, 46, 48, 70]。因此,权衡通用性成本的一种常见技术是操作系统专用化 [8, 25, 33, 46],即针对特定用例(如应用程序、工作负载或硬件平台)定制操作系统的过程。操作系统专用化是一个流行的系统研究主题,相关工作针对 I/O [15, 42, 57, 65, 70, 73]、GPU 或硬件加速器 [81–83]、资源使用 [2, 42, 44, 54, 55]、安全性 [45, 49, 80, 91]、兼容性 [9, 66, 67, 69, 90] 或可扩展性 [14]。

大多数操作系统专用化工作依赖于专家开发人员手动调整或重新实现特定的操作系统子系统。不幸的是,这些方法依赖于专家领域知识,阻止了绝大多数用户获得这些技术的好处。为了解决这个问题,我们需要在操作系统专用化方面更多的自动化。

我们专注于通过配置进行操作系统专用化,其中操作系统使用户能够通过编译时、启动时或运行时配置参数自定义其行为并为特定用例调整其功能。虽然配置专用化的好处可以说比通过重新设计部分操作系统获得的好处更适度,但它们在许多场景中已被证明是显著的 [39, 44, 45, 77, 88]。此外,这种方法非常适合自动化,并且可以在没有专家知识的情况下实现。虽然先前的工作已经探索了自动开关功能以减少资源消耗 [1, 40, 77] 或攻击面 [45, 88, 89],但当针对性能等其他指标时,没有一个能够处理现代操作系统提供的巨大且复杂的配置空间的挑战。

我们提出了 Wayfinder,一个完全自动且无需专家知识即可为应用程序专用化操作系统(如 Linux)配置的框架。对于在给定硬件设置上处理给定工作负载的目标应用程序,Wayfinder 自动专用化操作系统配置的任何方面,例如编译时、启动时和运行时参数,以实现任何可量化的性能、资源消耗、安全性或兼容性指标。该框架包括一个自动化操作系统配置、构建和基准测试平台,旨在支持可重复的测试。在其核心,Wayfinder 建立在 DeepTune 之上,这是一种新颖的基于神经网络的优化算法,用于驱动专用化过程。DeepTune 的关键思想是通过预测 1) 它们在目标指标上的性能(例如,吞吐量、内存使用)和 2) 它们有效的可能性(例如,编译、运行时不崩溃)来选择有趣的候选配置,从而指导搜索。

Wayfinder 解决了几个挑战。首先,现代操作系统的配置空间极其巨大。如图 1 所示,Linux 6.0 展示了大约 20,000 个编译时选项,除此之外还有启动时和运行时参数。一些参数采用任意数字作为值,这加剧了问题:总的来说,不可能探索每一个配置。其次,如果没有专家知识,搜索空间很难定义。许多内核参数提供很少或没有文档:参数类型和有效值范围是未知的。第三,评估配置需要时间,因为它可能需要构建内核映像、启动它并运行测试以评估目标指标。评估配置所需的时间可能会有显著差异,自动化操作系统调优系统应该优化发现专用配置的整体时间。最后,搜索空间包含许多在纸上有效的配置(例如,在 Linux 上,它们满足 KConfig 检查的约束),但会导致编译时、启动时或运行时失败。我们的评估表明,当使用朴素(随机搜索)方法来优化 Linux 操作系统的配置时,大约三分之一的尝试失败,这代表了大量浪费的搜索迭代。结合缓慢的评估,这严重限制了在给定时间预算内可以探索的配置数量。

Wayfinder 的设计如下解决这些挑战。对于具有巨大且难以限定搜索空间的操作系统(例如 Linux),我们使用启发式算法离线确定搜索空间,该算法推断每个操作系统参数的类型和范围。然后,我们的在线探索依赖于 DeepTune,这是一种神经网络优化算法,它逐步学习对目标指标具有最显著性能影响的操作系统配置参数和值。为了加速搜索,DeepTune 学习避免可能触发失败的参数值,这是竞争方法(如随机搜索或贝叶斯优化)所缺乏的功能。默认情况下,学习过程针对每个要专用化的应用程序/指标从头开始。可选地,在训练模型以优化给定应用程序后,可以应用迁移学习,即该模型可以重用以加速具有相似特征的其他应用程序的探索。

我们将 Wayfinder 应用于专用化两个操作系统(Linux 和 Unikraft [42])的配置,用于流行的云应用程序。我们优化两个目标指标:应用程序性能和内存使用。与因果推理 [38] 或贝叶斯优化 [39] 等竞争者不同,Wayfinder 可扩展到现代操作系统(如 Linux)的巨大设计空间,并且从随机搜索基线发现专用配置的速度快几倍。Wayfinder 在预测失败方面效率很高,将崩溃率从 30% 降低到 10-25%。最后,我们证明迁移学习在加速搜索时间和将崩溃率降低到 10% 以下方面是有效的。例如,使用在 Redis 上训练并应用于 Nginx 的模型,搜索速度提高了 24%,崩溃率低于 5%。

总的来说,本文做出了两个核心贡献:

• Wayfinder,一个能够自动且无需专家知识地配置、构建、运行和基准测试操作系统的评估平台。

• DeepTune,一种驱动 Wayfinder 专用化过程的新颖神经网络优化算法。

2 背景、挑战与动机

2.1 通过配置进行专用化

专用化针对给定用例(例如,应用程序、工作负载、硬件平台)和给定指标(例如,性能、资源使用)优化操作系统。操作系统专用化有许多方法 [14, 42, 45, 49, 54, 69, 70, 81]。我们专注于通过配置进行专用化 [1, 40, 44, 45, 55, 66, 73, 80, 89],即通过微调操作系统的编译时、启动时和运行时参数来专用化操作系统。

先前的工作探索了通过配置进行操作系统专用化,目标是减少资源使用(例如,内存占用)[1, 40, 44, 55, 66, 73, 77] 和攻击面 [45, 80, 88, 89]。其中一些方法是手动的 [42, 44, 66, 73, 80],因此鉴于真实世界操作系统(如 Linux)配置空间的规模 [44, 73, 80],它们无法扩展到少数几个应用程序之外。为了解决这个问题,其他工作探索了自动专用化操作系统配置的方法 [1, 40, 45, 77, 88, 89]。这些工作主要关注安全性(攻击面)或资源优化(内存占用)。因此,它们的目标是确定对于给定工作负载,哪些编译时配置参数(例如,内核特性或模块)可以禁用,哪些是工作负载所必需的。

这些方法并非通用的,也不适用于面向性能的专用化。除了仅启用/禁用编译时特性外,我们需要考虑全套内核选项,其中许多选项接受任意值,且具有不明确/未文档化的有效范围。为了扩展到许多应用程序,我们不能假设专家知识(即,不筛选相关选项)。简而言之,探索空间的规模变得准无限大。例如,考虑表 1 所示 Linux 内核配置空间的规模。Linux 的编译时配置包括超过 3000 个选项(占总计 20,000 个选项中的一部分)接受任意整数。此外,由于其通用性质,Linux 必须满足广泛的工作负载需求,因此许多性能关键的配置选项仅以运行时参数的形式提供。即使手动且具备专家知识,正确设置这些参数以最大化性能也是复杂的,正如网上可用的许多性能调优指南所展示的那样 [10, 16, 21, 22, 28, 58, 63, 76, 87]。由于这些原因,通过配置以实现性能目标的自动操作系统专用化在许多先前的工作中尚未被探索。


2.2 为性能优化操作系统配置

为了进一步激励通过配置进行操作系统性能专用化,我们随机生成 800 个 Linux v4.19 配置并评估它们的性能。对于每个随机配置,我们在 KVM 虚拟机中配置并运行相应的内核,在其中执行并使用 wrk 基准测试 Nginx Web 服务器。我们在 Intel Xeon E5-2697 v2(2×24 核@2.70 GHz,128 GB RAM)上运行这些实验。我们希望获得 800 个有效配置,因此当一个配置失败时(大约三分之一的随机生成配置在运行时崩溃),我们会重新生成随机配置,直到获得一个有效配置。

图 2 展示了将每个随机配置的性能与默认配置进行比较的结果。配置按性能升序排序。性能变化幅度高达 80%,从低于 10K 到 18K 请求/秒不等。一个关键观察结果是,最快配置的吞吐量比使用默认配置获得的吞吐量高 12%,尽管我们仅探索了设计空间的极小一部分。


这激励了针对性能等指标优化操作系统配置的有用性。然而,此处采用的随机搜索方法是次优的:在这个小规模空间上,64% 的配置性能比默认配置更差。此外,三分之一的配置导致内核无法构建/启动或在运行时崩溃/挂起的情况(本文其余部分统称为崩溃),浪费了资源。鉴于探索空间的巨大规模,以及对有效/无效配置缺乏考虑,通过随机搜索寻找专用配置的速度将慢得无法接受。因此,我们提出 Wayfinder,使用高效的优化算法驱动配置空间探索。

2.3 基于配置的操作系统专用化的优化算法 我们将寻找专用操作系统配置的方法视为一个优化问题。过去的工作使用了各种方法,例如贝叶斯优化 [5, 39]、因果推理 [38] 和随机搜索 [39]。然而,几个问题导致这些方法不适用或效率低下:

可扩展性。 贝叶斯优化依赖于高斯过程,其通常具有 (^3) 的计算复杂度,以及 (^2) 的内存消耗。因果分析算法的复杂度范围从 (^4) 到 (^3) [98],这限制了它们只能用于相对较小的问题。

缺乏增量训练。 在贝叶斯优化的情况下,添加新数据点并更新模型通常需要重新训练高斯过程。对于因果推理,这也需要重新计算因果图。结合可扩展性问题,这导致优化的每次迭代的成本呈指数级增长。

难以同时拟合高维数据的分类和数值参数。 贝叶斯优化的另一个众所周知的局限性是其在具有分类输入特征 [31](即具有固定值集合的特征)的问题以及高维输入问题上表现不佳。

总体而言,我们针对的非常巨大的配置空间使得因果推理和贝叶斯优化都不合适。随机搜索在如此大的空间上表现良好,但它在此问题上存在高崩溃率(随机采样的配置中有三分之一失败)。我们在评估中进一步证明了这些局限性(第 4 节)。

3 Wayfinder:设计与实现

探索空间的巨大规模以及依赖专家知识的不可行性,促使需要一个自动化探索平台。该平台可以被编程为自动配置、构建和基准测试一系列操作系统映像,目标是将它们专用化以适应特定的应用程序和工作负载。 概述。Wayfinder 由一个基准测试管道(§3.1)组成,该管道自动构建、配置和基准测试操作系统及应用程序映像,以及 DeepTune(§3.2),这是一种驱动探索以寻找给定应用程序的专用操作系统配置的优化算法。

3.1 自动化基准测试管道

Wayfinder 接受表示目标操作系统配置空间的 YAML 文件(作业文件,在§3.4 中讨论)以及描述如何构建和基准测试该操作系统映像(包括被测应用程序)的脚本作为输入。 使用 Wayfinder,为给定应用程序专用化操作系统的探索过程包括迭代执行以下核心循环:1) 在虚拟机中基于给定配置构建并启动操作系统映像;2) 基准测试在该操作系统映像上运行的目标应用程序;以及 3) 确定要考虑的下一个配置。用户向平台提供运行时间预算或迭代次数,之后返回找到的最佳配置。Wayfinder 提供一个模块化 API 以简化可插拔搜索算法的集成,这些算法完成步骤 3。这些算法通过使用各种方法决定接下来探索什么配置,从而驱动应用程序和工作负载/指标的操作系统专用化过程,我们目前支持以下内容:

• 随机搜索:每个后续要探索的配置都是随机生成的,不考虑探索历史。 • 网格搜索:所有可能的配置都被系统地探索,一个参数值接一个参数值。

• 贝叶斯优化:一种使用基于探索历史构建的概率模型来平衡探索(尝试新配置)和利用(尝试进一步优化已知表现良好的配置)的方法。

• DeepTune:一种基于机器学习的方法,平衡探索和利用,如下文§3.2 所述。

这些算法通过一个 API 与 Wayfinder 交互,该 API 暴露各种信息,例如已探索配置的历史、相应的性能结果、哪些配置导致构建失败或运行时崩溃等。一旦选择一个配置进行评估,平台会创建两个相应的内部任务:一个构建任务用于创建操作系统映像,以及一个测试任务用于测量其性能。这里的一个优化是,如果要探索的当前配置与前一个配置之间的差异仅涉及运行时参数而不涉及启动/编译时参数,则可以跳过构建任务。 Wayfinder 是用 15K 行 Go 代码构建的,作为微服务的集合。它使用现成的组件用于持久化、监控和日志记录。该平台运行在 Linux 主机上,被基准测试的操作系统映像在 QEMU/KVM 之上执行。

3.2 DeepTune

DeepTune 是驱动 Wayfinder 自动优化的人工智能算法。基于我们的关键假设(用户没有性能调优专业知识),面对前述巨大的配置空间,DeepTune 设计背后的直觉是我们需要结合探索(即尝试新参数以找到那些重要的参数)和利用(即优化被识别为重要的参数)。这种方法自动地对配置空间进行子集化以专注于最具影响力的参数(相对于可能需要不同量专业知识的启发式方法),同时确保它不会陷入局部最优。DeepTune 解决了我们在现有自动优化算法(如贝叶斯优化和因果推理 [38](见§2.3))中观察到的局限性,以实现高准确性和可扩展性。它通过 (1) 一种新的神经网络(NN)模型设计来预测随机生成的排列的行为,以及 (2) 一种新的评分函数来基于预测对配置进行排名,从而实现这一点。前者 (1) 体现在 DeepTuneModel (DTM) 中,这是一个多任务神经网络,预测运行时性能以及配置在运行时崩溃的可能性。DTM 还通过一种基于径向基函数(RBF)层 [47] 和 Chamfer 距离损失 [26] 的新机制提供不确定性度量。评分函数 (2) 通过合并模型预测、预测的不确定性以及与已知配置的不相似性来对候选配置进行排名。

图 3 展示了 DeepTune 的关键组件。DeepTune 始于从 Wayfinder 随机生成一个多样化的排列候选池 1。然后 DTM 估计这些候选者的性能 2,评分函数 3 对它们进行排名。顶级排列由 Wayfinder 评估 4,并且 DTM 被更新 5。算法迭代预定的周期数或直到实现性能目标。


DeepTune 模型 (DTM)。 本节旨在结合图 4 阅读。DTM(图 4)是一个多任务神经网络(NN),用于预测配置是否会崩溃、其预期性能以及这些预测的性能不确定性。它由两个分支组成: 预测分支 ,这是一个传统的神经网络,用于预测排列的崩溃概率和性能;以及 不确定性分支 ,这是一个径向基函数神经网络,用于估计预测性能的不确定性。








我们的实验表明,将 α 设置为 0.5 能在利用(exploitation)和探索(exploration)之间取得有效的平衡。

我们选择损失函数和评分函数的依据如下:损失函数训练系统同时识别无效(崩溃)配置并预测性能,而评分函数利用这些预测来策略性地选择新配置,以平衡探索与利用。RBF 分支增加了一种机制,使 DEEPTUNE 能够估计其置信度/不确定性。

我们的 DEEPTUNE 实现一次仅针对单个指标进行优化。然而,通过向 添加额外的输出层,它可以扩展以处理多个指标。这一修改使得 DTM 能够同时对多个目标进行预测。在评分阶段,我们将公式 3 应用于每个目标指标以获得单独的分数。然后,通过对这些单独分数进行加权平均或使用其他聚合方法,我们计算每个排列样本的代表性分数。

3.3 迁移学习

默认情况下,针对一个应用程序和指标进行优化的每个过程都从一个空白模型开始,并且影响性能/崩溃的参数必须从头重新学习。

迁移学习 [36] 包括在一个应用程序上预训练一个模型,然后重用它来加速另一个相关应用程序的优化过程。迁移学习背后的直觉在于任务之间特征的相似性:当应用程序共享特征且要优化的指标相似时,在一个应用程序上预训练的模型很可能对另一个应用程序也有用。换句话说,两个应用程序的性能可能对相同配置参数的变化敏感。例如,Redis 和 Nginx 都是网络密集型的:当 DeepTune 的一个实例在一个应用上训练时,对另一个应用重要的参数子集和值(例如,网络栈参数)已经被部分识别出来,从而加快了搜索速度。相反,该特定实例对于 NPB 将是无效的,因为 NPB 是 CPU/内存密集型的。

为了证实这一假设,我们构建了一个交叉相似性矩阵(图 5),以评估评估中考虑的四个应用程序之间最具性能影响力的内核配置选项的相似性/差异性(详见第 4 节)。为了创建该矩阵,我们首先为每个应用程序收集 2,000 个随机 Linux 配置。然后,我们使用特征重要性算法 [17] 来确定每个配置选项在预测性能方面的重要性。最后,我们将重要性分数视为向量,并计算它们之间的欧几里得范数距离。对于 Nginx、Redis 和 SQLite 来说,具有最高性能影响的参数是相似的,它们都是系统密集型的。Redis 与 SQLite 比与 Nginx 更接近,这并不令人意外,因为 Redis 和 SQLite 都是数据库。另一方面,NPB 由于其计算和内存密集的特性,表现出对不同参数的敏感性。这表明迁移学习对于 Wayfinder 中的某些类别的应用可能是有效的。


3.4 定义探索空间

Wayfinder 需要一个配置空间的描述来启动探索过程(即 3.1 节中提到的作业文件)。该描述包括配置参数列表、它们的类型以及它们可以取的可能值。现代系统(如 Linux)拥有复杂的配置,因此完全描述配置空间具有挑战性。虽然可以通过静态方式获取编译时和运行时参数的一些信息(例如通过分析 Kconfig 文件和内核命令行参数描述 [53]),但运行时参数并非如此:这些参数可能文档很少或根本没有文档,而且对于许多参数,有效值的范围无法静态确定,因为它取决于运行时方面(例如,可用 RAM 的数量)。

我们开发了以下启发式方法来确定 Linux 配置空间。Linux 通过虚拟文件系统(例如 /proc/sys, /sys)提供多个运行时配置选项。我们首先通过启动一个搭载正在研究版本的 Linux 的虚拟机 (VM),并列出这些路径中的可写文件,来确定所有配置选项。对于每个可写文件,我们读取它并假设返回的值对应于相应配置选项的默认值。接下来,我们通过检查默认值的类型来确定选项的类型。如果它是数字且等于 0 或 1,我们假设该选项是布尔值。如果既不是 0 也不是 1,我们将其视为任意整数。

最后,我们通过将一个较大的因子(10)多次向上和向下缩放默认值来估计选项的可能值范围,并尝试通过写入相应的伪文件将选项设置为这些新值。如果写入操作成功且 VM 没有崩溃,我们认为新值在该选项的有效范围内。配置值的探索故意保持粗略,因为寻找性能改进将是 Wayfinder 的任务。注意,该技术排除了非数字的配置参数(例如,字符串),因为很难自动确定其有效值。非数字运行时参数非常少(见表 1),对于这些参数,我们在必要时诉诸手动探索。Wayfinder 将逐个探索分类参数,不假设它们可取的值之间存在关系(例如,线性关系)。字符串参数的探索不会超出可以自动提取的值。除了 Linux,这种方法应该很容易推广到其他操作系统。我们认为,未来希望有更正式的内核参数规范,借鉴模糊测试社区贡献的系统调用接口定义 [32] 的灵感。

3.5 集成到部署工作流程中

实用性:将 Wayfinder 集成到常见的部署工作流程中。 我们设想 Wayfinder 将在应用程序开发过程的测试/评估阶段使用。系统配备代表部署条件的工作负载和机器,针对在这些条件下运行的应用程序优化内核配置。在该阶段,如果要部署由平台识别的配置到生产环境,工程师应审查该部署以确保其满足生产要求。虽然 Wayfinder 可以在其基准测试步骤中检查系统是否功能正常,但像任何人工智能工具一样,它不能免除站点可靠性工程师(以及典型的持续集成流水线)对其推送到生产的配置进行检查的责任。如果某个配置不符合生产要求,用户可以进一步约束探索空间以剔除该部分:

  • 约束搜索涵盖的参数。 用户可以可选地指定一组应保持固定值且不会由 Wayfinder 搜索过程改变的参数。例如,这有助于确保相关的安全选项(如地址空间布局随机化 ASLR 等)不会被 Wayfinder 禁用。Wayfinder 也可以被指示优先改变某些参数类型(编译时/启动时/运行时),这在例如无法重启待优化内核的情况下很有用。
  • 更全面的基准测试。 用户还可以扩展 Wayfinder 使用的基准测试工具(图 4 中的紫色部分)以检查部署的其他功能(例如,运行测试套件)。如果检查失败,Wayfinder 将学习导致异常行为的内核配置。

总体而言,我们的设计基于一个简单的假设:虽然用户无需具备操作系统性能优化方面的专业知识,但我们假设他们能够检查部署是否满足其生产要求。

安全考虑。 在安全敏感的场景中,在缺乏专业知识的情况下依赖完全自动化的框架会引发合理的安全担忧。这里的威胁模型如下:在不知晓安全相关选项的情况下,Wayfinder 可能会忽略、禁用或优化掉此类选项,从而导致内核配置如果在现场部署时可能被利用。

如前所述,我们可以通过将安全关键参数固定为安全值来启用安全感知搜索模式。在我们设想用户无需具备特定专业知识的背景下,这意味着我们假设用户有能力识别此类重要的安全相关选项。我们认为这一假设是合理的:常用安全参数可以由 Wayfinder 的开发者识别,无需用户付出努力或具备专业知识。也可以安全地假设,用户会意识到任何应设置为特定值的非标准安全参数,否则他们一开始就无法安全地运行其应用程序。最后,如上所述,与任何其他自动化工具一样,Wayfinder 的输出在推送到生产环境之前应由可靠性工程师进行检查。

对工作负载和硬件的敏感性。 Wayfinder 针对在特定平台上运行并处理特定工作负载的特定应用程序专门化内核配置。与大多数性能评估工作类似,工作负载或硬件的变化需要重新运行评估,以获得所考虑软件和硬件的准确结果。Wayfinder 可以扩展以预测与所评估不同的硬件/工作负载的性能,例如使用来自异构计算文献 [61, 68] 的跨工作负载 [96] 和跨平台 [92] 性能估计方法。我们将该目标列为未来工作。

4 评估

本次评估回答以下问题:

  • 鉴于操作系统提供的巨大配置空间,Wayfinder 能够多快地为给定应用程序收敛到一个专门的配置?对于给定的迭代次数/时间预算,Wayfinder 能够找到的最佳配置是什么?这些结果与基线和竞争对手相比如何?(§4.1)
  • 当 Wayfinder 在一个应用程序上预训练模型时,应用迁移学习并利用该模型来加速搜索其他应用程序的专门配置有哪些好处?(§4.2)
  • Wayfinder 在预测崩溃方面表现如何?(§4.3)
  • 除了 Linux 和性能指标之外,Wayfinder 能否应用于不同的操作系统和其他指标?(§4.4)

我们选择了一组流行的应用程序:Nginx [64] Web 服务器和 Redis [74] 键值存储(均为网络密集型)、SQLite [85] 数据库管理系统(存储密集型),以及 NAS 并行基准测试 [11](NPB,CPU 和内存密集型)。Nginx 使用 wrk [99] 进行基准测试,Redis 使用 redis-benchmark [75] 进行基准测试,在这两种情况下,我们的优化目标都是最大化吞吐量。SQLite 使用 LevelDB 的 SQLite3 基准测试 [50] 进行基准测试,其中会发出大量 SQL INSERT 操作,我们的目标是最小化每个操作的平均执行时间。我们使用 NPB 的 OpenMP 版本,并选择了一组 CPU 和内存密集型程序的混合:FT、MG、CG、IS(运行整个套件耗时过长),大小类别分别为 S、W、A 和 B。在一次运行中,我们为每个大小类别执行所有程序,并汇总每个基准测试报告的每秒操作数,这是我们旨在最大化的指标。

我们在一个双路服务器上进行所有实验,该服务器配备 2 个 Intel Xeon E5-2697 v2 处理器(2x24 核心,2.70 GHz,128 GB RAM),运行 Debian 10,并配置为高性能且稳定:核心 0-1 启用 isolcpus,禁用超线程和地址空间布局随机化(ASLR),使用性能 CPU 调控器。由于 Redis 和 SQLite 的单线程特性,它们在 1 个核心上运行,而 Nginx 和 NPB 在 16 个核心上运行。所使用的服务器暴露 2 个 NUMA 节点,但我们将实验限制在单个节点上,以避免 NUMA 影响性能测量。为了避免因实验共存而产生的任何干扰,所有测试配置依次进行基准测试,不存在实验共存的情况。

除非另有说明(§4.2),在 Wayfinder 中迁移学习被禁用,每个搜索过程都从一个空白模型开始从头启动。作为基线,我们选择了随机搜索 [100],这是一种在大型探索空间(如我们所针对的空间)上已知能产生良好结果的方法。该方法通过持续为每个参数生成具有随机值的独特配置来探索设计空间。我们省略了与网格搜索的比较,因为众所周知,在我们所针对的大型配置空间上,网格搜索优于随机搜索。我们还展示了 Wayfinder 的性能优于贝叶斯优化 [79],这是一种用于优化长时间运行的黑盒函数的常用技术,它使用概率模型来平衡尝试先前未探索的参数与专注于已知会影响性能的参数。我们还证明了 Wayfinder 优于 Unicorn [38],这是一项密切相关的工作,专注于使用因果推理来优化操作系统和应用程序配置。正如我们所展示的,贝叶斯优化和 Unicorn 无法扩展到 Wayfinder 所针对的大型配置空间(例如 Linux 配置),因此我们在较小的探索空间上与它们进行比较。我们还展示了 Wayfinder 如何与基于编译时动态分析的优化器(如 Cozart [43])协同工作,Cozart 是一项相关工作,它利用动态分析显著减少 Linux 内核配置选项的数量,从而产生更小的足迹和探索空间。我们表明,由 Cozart 生成的配置是 Wayfinder 通过运行时选项进行优化的可靠基线。最后,对于所有实验,用于启动每个搜索过程的初始操作系统配置是随机定义的。

4.1 配置空间搜索的性能

操作系统配置专门化 我们运行 Wayfinder 为每个目标应用程序将 Linux 内核专门化以提升性能。我们使用 Debian 10 的内核 v4.19(一个长期支持版本)。对于这些基于性能的实验,我们将 Wayfinder 配置为优先探索运行时参数。我们运行 Wayfinder 和随机搜索 250 次迭代(探索 250 个参数,根据应用程序不同耗时 3.5 至 5.2 小时),并比较所找到配置的性能。

表 2 显示了 Wayfinder 找到的最佳配置的性能,以及找到它们所需的平均时间和默认 Lupine Linux [44] 配置的性能。Lupine 是一个专为通用性能(即不针对任何特定应用程序)专门化的 Linux 内核。为 Nginx 找到的配置快了 24%,表明 Wayfinder 能够成功找到性能优于默认配置的配置。对于 NPB,改进仅为 2%。由于该基准测试主要是 CPU 和内存密集型的,且不请求任何系统功能,因此操作系统配置对其性能几乎没有影响。


为 SQLite 找到的最佳配置也没有提升性能,这似乎表明默认配置在此场景下已经非常高效。

图 6 展示了每种方法找到的配置的性能。虚线表示崩溃率,1 表示每次迭代都会崩溃。Wayfinder 找到的配置在搜索过程开始时的性能与随机搜索相似。经过一定次数的迭代后,DeepTune 的神经网络学习到重要参数以及如何高效使用它们,使得配置的性能超越随机搜索。例如,对于 Nginx,经过 250 次迭代后,平滑吞吐量比随机搜索高出 20% 以上。与随机搜索相对一致的崩溃行为不同,Trailblazer 的崩溃率随时间推移而下降,因为它学会了避免可能导致崩溃的配置:例如,对于 Nginx,崩溃率在 250 次迭代后从 0.3 降至 0.1。




由于这些可扩展性问题,我们无法在本评估提出的其他实验中将 Wayfinder 与 Unicorn 进行比较。事实上,这些实验针对的设计空间比 Unicorn 能够处理的规模大几个数量级。

搜索循环执行时间。 我们测量评估单个配置的平均执行时间,以了解 Wayfinder 的性能。图 8 展示了执行时间,分解为运行 DeepTune 以决定评估哪个配置所花费的时间,以及评估配置本身所花费的时间(即启动内核、启动目标应用程序、运行实验等)。评估配置主导了搜索过程:根据应用程序不同,平均耗时 60-80 秒,并且由于所评估配置的性能影响而波动较大。相反,DeepTune 一次迭代的执行时间不到一秒,表明瓶颈在于配置的评估而非搜索算法本身。


高影响力配置参数。 我们查询了 DeepTune 学习的模型,以评估 Wayfinder 识别对性能有高影响力参数的能力,包括一些先前已被专家识别的参数。出于篇幅原因,我们在此重点关注 Nginx,因为它是许多性能调优指南的目标。

关于对性能有正面影响的顶级参数,虽然 Trailblazer 识别出的参数在调优指南中有充分记录,但它也发现了其他未提及的重要配置选项。例如,它识别出诸如每个套接字在 TCP/IP 栈 backlog 中可排队的最大连接数(net.core.somaxconn)、套接字接收缓冲区的默认大小(net.core.rmem_default)以及 TCP 保持活动超时时间(net.ipv4.tcp_keepalive_time)等选项。这些参数已在 Nginx/网络性能调优指南中被记录为高影响力参数 [37, 63, 78, 102]。

然而,Wayfinder 还识别出以不太直观的方式影响性能的参数,例如计算由 vmstat 报告的内存统计信息的频率(vm.stat_interval)。正如调优指南 [23] 中所述,在对延迟敏感的场景中降低该频率有所帮助。因此,Wayfinder 能够自动定位并优化那些已被专家识别为影响性能的非显而易见参数。

关于对性能有负面影响的顶级参数,Wayfinder 识别出若干导致显著性能下降的选项,例如设置高水平的内核详细输出(printk)、延迟内核日志(printk_delay)以及启用块 I/O 调试(vm.block_dump)。众所周知,日志记录和调试会影响 Nginx 的性能 [39],这再次证明了 Wayfinder 识别已记录瓶颈的能力。

4.2 迁移学习效率

为了评估迁移学习的效率,我们在 Redis 上使用 DeepTune 训练了一个模型 250 次迭代(耗时 4.6 小时),并评估了该模型在为本次评估中考虑的其他 3 个应用程序寻找专门配置方面的有效性。

结果如图 6 所示,图例中标记为"TL"的曲线展示了所找到配置的性能以及迁移模型的崩溃率。使用迁移学习时,与使用未训练模型开始探索过程相比,配置性能始终更高:例如,在搜索过程开始时为 Nginx 找到的第一个配置,使用迁移学习比不使用迁移学习或使用随机搜索的性能高出 1.33 倍。使用迁移学习时,崩溃率通常也低得多,在大多数情况下低于 10%。表 2 从另一个角度审视了迁移学习的效率。在其最后两列中,展示了使用和不使用迁移学习时达到专门配置所需的时间。该技术带来的时间节省非常重要:搜索速度加快了 4.5 倍(Nginx)到 3.2 倍(NPB)不等。请注意,由于图 6 中展示的曲线是多次运行的平均值,因此图 6b 中 DeepTune+TL 的曲线起点与不使用迁移学习的 DeepTune 曲线终点不完全一致,这并不令人意外。

4.3 崩溃预测

使用随机探索时,大量配置(约三分之一)在运行时失败,这是对时间的显著浪费。Wayfinder 也会遇到失败,然而它能够学习可能触发崩溃的配置参数,这意味着它可以避免其中许多失败。

表 3 展示了 DeepTune 在预测给定配置将失败(失败准确率)以及预测给定配置将成功执行(运行准确率)时的准确性。它还展示了在预测配置性能时的归一化平均绝对误差。可以观察到,失败准确率很高,介于 75% 至 80% 之间,这使得 Wayfinder 能够避免大量崩溃。运行准确率较低,范围在 0% 至 36% 之间,因此我们依赖失败准确率来估计配置失败的概率,以判断是否值得评估该配置。


4.4 变换操作系统和目标指标

应用于其他操作系统:Unikraft。 为了展示 Wayfinder 在 Linux 以外操作系统上的应用,我们现在将 Wayfinder 应用于 Unikraft [42] 库操作系统。我们编译一个 Nginx Unikraft 镜像,并使用 Wayfinder 优化其配置以最大化请求吞吐量。Unikraft 暴露的配置空间比 Linux 小得多,这使得与贝叶斯优化进行比较成为可能:我们探索 33 个配置参数(10 个 Nginx 应用程序级参数和 23 个 Unikraft 操作系统参数),产生一个包含 种排列的搜索空间。

我们启动探索过程,时间预算为 3 小时。所找到配置的性能如图 9 所示。可以观察到,Wayfinder 迅速收敛到一个专门配置,在 100 分钟后达到。贝叶斯优化则需要超过 160 分钟才能达到性能相似的配置。在该时间预算下,我们还观察到随机搜索无法找到高性能配置。图 9 清晰地展示了 DeepTune 行为中的三个阶段。DeepTune 首先缓慢地发现性能更好的配置。大约 25 分钟后,它捕捉到一组有影响力的参数,并进入开发阶段,在此阶段它专注于这些参数以快速提升性能。该阶段在大约 100 分钟后结束,此时 DeepTune 重新回到探索阶段。


请注意,顶级配置带来的性能提升显著高于在 Linux 上观察到的提升(见图 6)。这可以解释为:Unikraft 是一个 unikernel [54],提供低延迟的用户/内核态转换,在正确配置下,能显著加速对延迟敏感的系统密集型工作负载 [42]。

应用于其他指标:内存占用。 为了评估 Wayfinder 在性能优化之外的适用性,我们测量其在寻找内存占用小的 Linux 内核配置方面的效率。该指标是过去多项工作的目标,因为它在某些领域至关重要,例如轻量级虚拟化 [44, 73, 80] 或嵌入式系统 [1, 40],并且也会影响安全性等方面 [45, 89]。为了优化内存消耗,我们将 Wayfinder 配置为构建 RISC-V Linux 镜像,RISC-V 是一种在嵌入式系统中非常流行的指令集架构。内存消耗通过在 QEMU 仿真环境中启动镜像来测量(尽管仿真会影响性能,但不会影响内存消耗)。与过去关于该主题的研究 [1, 40, 44, 45, 89] 一致,在本实验中,我们将 Wayfinder 配置为优先改变编译时选项(而非§4.1 中的运行时选项)。我们使用 Wayfinder 和随机搜索启动探索过程,时间预算为 3 小时。

所找到配置的内存占用演变如图 10 所示。默认配置的内存占用为 210 MB。3 小时后,Wayfinder 找到一个内存占用为 192 MB(平滑后)的配置,相比默认配置减少了 8.5%。在探索过程结束时,随机搜索找到的配置的内存占用为 203 MB(平滑后),即减少了 5.5%。此外,可以注意到,与随机搜索相比,Wayfinder 的失败配置数量要少得多。这归功于系统预测崩溃的能力,该能力在本实验中尤为高效:在最后 100 分钟内仅发生了四次崩溃。


与编译时优化器的协同作用。 使用前面讨论的方法,Wayfinder 也可以检查编译时参数。然而,由于 Linux 内核管理构建依赖的方式以及 Wayfinder 探索配置的方式,这个过程可能效率低下。最初,Wayfinder 生成近乎随机的配置,这通常需要完全重建 Linux 内核。即使单个错误的参数也可能导致构建失败。为了解决这个问题,我们添加了一个使用 Cozart [43] 的初始优化步骤,它利用动态分析显著减少 Linux 内核中未使用组件的数量。这种减少导致配置空间小得多,使 Wayfinder 能够专注于 Linux 未探索的运行时参数,同时也提供了性能提升。我们观察到与基线相比吞吐量增加了 31%,同时内存使用量略有减少,这与 Cozart 评估中报告的结果相似。

接下来,我们在 Cozart 基线之上应用了 Wayfinder 优化。我们将优化分数 s 定义如下:


在此, t t 代表吞吐量, m m 代表内存消耗,mXNorm(x) 是最小-最大归一化函数,它将吞吐量和内存数值转换到同一尺度上。因此,较高的分数表示更好的吞吐量和更少的内存使用。

图 11 显示,当在 Cozart 基线上运行时,Wayfinder 能够有效地学习并创建一个性能优于随机搜索的策略。与图 9 类似,该图展示了 DEEPTUNE 的探索与开发策略。大约 300 分钟后,DEEPTUNE 找到了一组参数,使其能够提高吞吐量-内存分数。然后它对该策略进行约 100 分钟的开发利用。这表现为崩溃率显著降低,因为 DEEPTUNE 专注于空间中更稳定的部分。在此阶段之后,DEEPTUNE 切换回探索模式。这导致较高的崩溃率,因为它探索更多未知的配置。


表 4 展示了在联合探索吞吐量和内存使用期间获得的前五个分数。尽管第一和第二个排列的吞吐量显著较低,但它们使用的内存更少,从而获得了最高的总体分数。相反,第三个排列实现了高得多的吞吐量,而内存使用仅略有增加。与 Cozart 基线相比,这些排列始终提供更高的吞吐量,同时保持较低的内存消耗。


总之,我们证明通过将 Cozart 的编译优化与 Wayfinder 的运行时优化相结合,可以调整操作系统以改善各种指标的性能。

5 相关工作

基于配置的操作系统专门化 几项工作通过其配置对 Linux 进行专门化,以降低资源使用 [1, 40, 44, 73, 77, 80] 或攻击面 [45, 89]。一些方法是手动的 [44, 73, 80] 且无法扩展到许多应用程序,而另一些则是自动化的。Undertaker [45, 89] 使用动态分析来追踪工作负载执行的内核代码,并将该代码与编译时选项关联起来,以尽可能编译掉不需要的代码。Kernel tailoring [40] 建立在 Undertaker 之上。注意到该工具探索的大部分配置在运行时失败,该工作提出了一种搜索方法,试图从已知能成功执行的配置中推导出有效配置。这些方法针对攻击面/内存占用减少,因此它们旨在确定对于给定工作负载,哪些编译时配置参数可以关闭,哪些必须开启。由于我们关注性能(除了资源使用等其他指标之外),这些方法不能直接应用于我们的问题。除了仅开关编译时功能外,Wayfinder 考虑了全套内核编译时、启动时和运行时选项,其中许多采用任意值,且具有未记录的有效范围。Cozart [43] 也建立在 Undertaker 之上。使用类似的方法利用动态分析来确定未使用的配置选项,Cozart 减少了 Linux 内核的占用,并额外带来了减少内存使用和提高性能的好处。不过,这些性能增益并不是 Cozart 的主要关注点,但它们确实为 Wayfinder 提供了一个更好的起点基线。如前所述,Wayfinder 和 Cozart 没有太多共同点,但在通过编译时选项和运行时选项优化 Linux 内核方面,它们能很好地协同工作。AutOS [20] 为 AIoT 应用程序性能专门化 OS 内核(包括 Linux),方法是将它们的配置表示为树并将其传递给大型语言模型,该模型在描述环境的提示的帮助下驱动探索并细化搜索。这项工作仅限于编译时选项,并且需要专业知识才能编写提示。

基于配置的应用程序优化。 Unicorn [38] 使用因果推理来自动为嵌入式软件专门化配置。KML [3, 4] 使用机器学习技术来优化存储子系统的配置。一些过去的工作使用静态和/或动态分析探索了软件配置参数对性能的影响 [51, 94, 95]。其他工作 [18] 专注于识别与特定工作负载性能最相关的配置参数,本例中是在存储子系统中。所有这些系统都需要专业知识来预先识别一组潜在重要的参数,并且针对的配置空间比 Wayfinder 的小得多。特别是,我们已经展示(图 7)Unicorn 无法扩展到如此大的配置空间。

在无服务器计算中,AWS Lambda Power Tuning [7, 19] 是一个自动化平台,用于优化分配给函数的内存。Sizeless [24] 提出了一种回归模型来估计函数性能。COSE [5] 使用贝叶斯优化来寻找函数的专门配置。在数据库中,几项工作如 Ottertune [93] 也自动优化性能。这种特定于应用程序的方法呈现的配置空间比现代操作系统的配置空间小几个数量级。因此,它们依赖于贝叶斯优化等技术,这些技术不适合我们的问题。

基于配置的优化也用于其他上下文,包括硬件设计(加速器调优 [62, 101],FPGA 布局规划 [59])、神经架构搜索 [97] 和分布式计算放置 [60]。这些方法与其针对的应用领域绑定(例如,它们在搜索空间的特定表示上操作 [97]),并且不直接适用于操作系统专门化。

机器学习文献中的其他优化工作。 参数搜索/优化近年来引起了显著关注 [6, 27, 29, 34, 35, 38, 52, 71, 84]。一些方法依赖于贝叶斯优化。例如,SMAC [52] 使得能够轻松地将贝叶斯优化应用于通用优化问题。SMAC 还支持随机森林,与高斯过程相比,它在可扩展性和性能预测方面有所改进,但对预测后验不确定性的估计较差(探索与开发决策所需)。Snoek 等人 [84] 贡献了贝叶斯神经网络 (BNN) 来取代高斯过程。BNN 是通用近似器,可以预测后验不确定性,但其拟合和泛化能力通常低于传统神经网络。BNN 的评估成本也很高,因为它们需要蒙特卡洛采样策略,这需要多次运行它们。Hase 等人 [35] 成功地将这一想法应用于化学领域,并将该想法扩展到多目标优化 [34]。Gal 等人 [30] 从 dropout 中采样作为 BNN 的近似。最后,Kendall 等人 [41] 研究了机器学习问题所需的几种不确定性,并为回归问题提出了一种不确定性估计机制。由于常用激活函数的性质,它们通常无法提供异常值样本的良好不确定性。DeepTune 提出了一种新的神经网络设计,能够在单次传递中以高精度准确预测系统性能、失败和准确性。我们还提出了一种新的评分函数,该函数创建了一个平衡的排列策略挑选。

6 结论

我们提出了 Wayfinder,一种通过配置实现操作系统专门化的全自动方法。Wayfinder 配备了一个基准测试平台和 DeepTune,这是一种基于神经网络的优化算法,能够预测配置的有效性和性能。Wayfinder 不需要专业知识,并且能够扩展到现代操作系统(如 Linux)的巨大配置空间。在运行 Wayfinder 为一个应用程序进行优化后,训练好的模型可以被重用以加速其他类似应用程序的专门化过程。Wayfinder 能够针对各种指标识别专门的配置,与默认配置相比,应用程序性能最高可提升 24%,内存使用量可降低 8.5%,并且比使用随机搜索和贝叶斯优化的竞争方法更快地收敛到优质解决方案。

原文链接:https://arxiv.org/pdf/2603.23425

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
范元甄:与江青齐名的延安四美之一,嫁主席秘书,却输掉了一生

范元甄:与江青齐名的延安四美之一,嫁主席秘书,却输掉了一生

干史人
2026-03-05 21:06:35
去世男老师资产被瓜分了

去世男老师资产被瓜分了

毒舌扒姨太
2026-03-30 22:34:13
国民党内炸锅!马英九郑丽文彻底撕破脸,郑丽文或成第二个洪秀柱

国民党内炸锅!马英九郑丽文彻底撕破脸,郑丽文或成第二个洪秀柱

爱下厨的阿酾
2026-03-27 01:08:12
儿子自杀六年后,母亲在人体展看到具剥皮尸体,秒认出:那是我儿子

儿子自杀六年后,母亲在人体展看到具剥皮尸体,秒认出:那是我儿子

新欧洲
2025-11-28 21:21:41
广东汕头一男子路过妈祖庙,将妈祖金身佩戴的黄金耳环偷走,拿回家给家中供奉的神像佩戴!法院以盗窃罪判处有期徒刑6个月并处罚金3000元

广东汕头一男子路过妈祖庙,将妈祖金身佩戴的黄金耳环偷走,拿回家给家中供奉的神像佩戴!法院以盗窃罪判处有期徒刑6个月并处罚金3000元

洪观新闻
2026-03-30 15:25:31
SHE合体庆生,回归家庭的任家萱状态大变,三人差距一目了然

SHE合体庆生,回归家庭的任家萱状态大变,三人差距一目了然

八怪娱
2026-03-30 20:46:16
韩国军事专家:这个世界上没有任何一个国家敢动中国

韩国军事专家:这个世界上没有任何一个国家敢动中国

南权先生
2026-03-12 16:14:24
输不起的政治:民主党为何沉迷这场“无王抗议”闹剧

输不起的政治:民主党为何沉迷这场“无王抗议”闹剧

斌闻天下
2026-03-30 07:15:03
我做凶宅试睡员10年,我见过上百套凶宅,最终栽在了一套江景房里

我做凶宅试睡员10年,我见过上百套凶宅,最终栽在了一套江景房里

千秋文化
2026-03-28 21:31:38
3月31日精选热点:又一化工产品价格暴涨50%,2大产能龙头要暴涨

3月31日精选热点:又一化工产品价格暴涨50%,2大产能龙头要暴涨

元芳说投资
2026-03-30 21:31:44
iPhone Fold即将发布,系苹果史上首款折叠屏手机,外屏尺寸约为5.5英寸,展开后的内屏则达到7.8英寸,电池容量突破5000毫安时

iPhone Fold即将发布,系苹果史上首款折叠屏手机,外屏尺寸约为5.5英寸,展开后的内屏则达到7.8英寸,电池容量突破5000毫安时

鲁中晨报
2026-03-30 18:17:07
这4个小时是“黄金睡眠时间”,错过了很难补回来

这4个小时是“黄金睡眠时间”,错过了很难补回来

齐鲁壹点
2026-03-07 05:15:12
高德和交警联网了吗?网友:高德敢联网,就会失去大量客户

高德和交警联网了吗?网友:高德敢联网,就会失去大量客户

夜深爱杂谈
2025-12-15 23:14:05
海航空姐合影,各个肤白貌美大长腿

海航空姐合影,各个肤白貌美大长腿

微微热评
2026-03-29 12:34:00
核武器殉爆?以色列政府发布危险物质泄露,伊朗这回中大乐透了!

核武器殉爆?以色列政府发布危险物质泄露,伊朗这回中大乐透了!

汪镛的创业之路
2026-03-31 04:08:46
军号被粉底液将军粉丝围攻,编剧汪海林发声:真是无法无天

军号被粉底液将军粉丝围攻,编剧汪海林发声:真是无法无天

往史过眼云烟
2026-03-28 14:32:07
北京世纪金源购物中心新变化!“这几天很多店排大队”

北京世纪金源购物中心新变化!“这几天很多店排大队”

北京商报
2026-03-30 14:13:59
1976年,王秀珍连夜调集3万民兵,12年后,她在街头扫地为生

1976年,王秀珍连夜调集3万民兵,12年后,她在街头扫地为生

鉴史录
2026-03-30 21:49:45
父亲是福建人,母亲是牙买加人,他落户上海,或将成为男篮主力

父亲是福建人,母亲是牙买加人,他落户上海,或将成为男篮主力

寒士之言本尊
2026-03-30 17:12:18
张凌赫那个高中暗恋的女孩被扒出来了!暗恋信也曝光了!

张凌赫那个高中暗恋的女孩被扒出来了!暗恋信也曝光了!

喜欢历史的阿繁
2026-03-30 18:05:49
2026-03-31 06:31:00
CreateAMind incentive-icons
CreateAMind
CreateAMind.agi.top
1314文章数 18关注度
往期回顾 全部

科技要闻

一句谎言引发的硅谷血案

头条要闻

白宫:特朗普希望4月6日前与伊朗达成协议

头条要闻

白宫:特朗普希望4月6日前与伊朗达成协议

体育要闻

想进世界杯,意大利还要过他这一关

娱乐要闻

全红婵聊到体重哭了,每天只吃一顿饭

财经要闻

本轮地缘冲突,A股凭什么走出独立行情

汽车要闻

限时12.58万起 银河星耀8远航家系列上市

态度原创

健康
数码
教育
手机
公开课

干细胞抗衰4大误区,90%的人都中招

数码要闻

OPPO Pad 5 Pro平板现身官网,消息称将搭载第五代骁龙8至尊版

教育要闻

为什么从英国留学回来后还想重新回去?

手机要闻

曝苹果影像测试的新Sensor基本确定1/1.12",超广角也考虑增强

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版