<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[Sean Heelan - Elasticsearch Labs]]></title>
    <description><![CDATA[Articles and tutorials from the Search team at Elastic]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[Sean Heelan - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/cn/search-labs/author/sean-heelan</link>
    </image>
    <link>https://www.elastic.co/cn/search-labs/author/sean-heelan</link>
    <atom:link href="https://www.elastic.co/cn/search-labs/rss/author/sean-heelan.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[cn]]></language>
    <lastBuildDate>Tue, 29 Sep 2026 14:36:19 GMT</lastBuildDate>
  <item>
    <title><![CDATA[开源 sysgrok - 用于分析、理解和优化系统的人工智能助手]]></title>
    <description><![CDATA[Sysgrok 是一个实验性的概念验证，旨在展示如何使用 LLM 来帮助 SWE 和 SRE 了解系统、调试问题和优化性能。]]></description>
    <content:encoded><![CDATA[<p>在这篇文章中，我将介绍 sysgrok，这是一个研究原型，我们正在研究如何将 OpenAI 的 GPT 模型等大型语言模型 (LLM) 应用于性能优化、根本原因分析和系统工程等领域的问题。您可以在<a href="https://github.com/elastic/perf-copilot">GitHub</a> 上找到它。</p><h2>sysgrok 是做什么的？</h2><p>sysgrok 的功能包括</p><ul><li><p>提取剖析器识别出的最昂贵的函数和进程，解释每个函数和进程提供的功能，并提出优化建议</p></li><li><p>获取一台主机和该主机遇到的问题描述，自动调试问题并提出补救措施和进一步行动建议</p></li><li><p>使用剖析器注释过的源代码，解释热点路径，并提出提高代码性能的方法</p></li></ul><p>sysgrok 的功能主要针对三大类解决方案：</p><ol><li><p><strong>作为性能、可靠性和其他系统相关数据的分析引擎。</strong>在这种模式下，LLM 接收工程师使用的其他工具（如 Linux 命令行工具、剖析器或 Observability 平台）的输出。sysgrok 的目标是使用 LLM 对系统状态进行解释、总结并形成假设。然后，它还可能提出优化或补救建议。</p></li><li><p><strong>作为特定性能和可靠性相关任务的重点自动化解决方案。</strong>在性能工程和 SRE 工作中，有些任务会反复出现。对于这些问题，我们可以建立重点突出的自动化助手，工程师可以直接使用，sysgrok 本身也可以在解决其他问题时使用。例如，在性能工程中，回答这样的问题"："这个库是否有更快的、具有同等功能的版本？" "是很常见的。sysgrok 可直接支持该功能。</p></li><li><p><strong>作为性能和可靠性问题的自动根本原因分析工具。</strong>前两类解决方案是数据分析、解释、搜索和总结的混合体。最重要的是，它们都是以一种有针对性的方式应用于工程师自己收集的数据。在 sysgrok 中，我们还在研究利用 LLM 解决问题的第三种方法，即 LLM 与其他工具相结合，自主执行根本原因分析并解决给定问题。在这种方法中，LLM 会得到一个问题描述（如"网络服务器出现高延迟" ），并告诉它有哪些功能可用（如"ssh 到主机，" " 执行任意 Linux 命令行工具" ）。然后，要求当地联络机制利用现有能力采取行动，对问题进行分流。这些操作由 sysgrok 执行，并要求 LLM 分析结果、分流问题、提出补救措施和下一步建议。</p></li></ol><p>sysgrok 还处于早期阶段，但我们发布它是因为它已经在各种任务中发挥了作用--我们希望它能为其他人进行类似实验提供方便。如果您有任何想法，请随时向我们发送 PR 或<a href="https://github.com/elastic/sysgrok">在 GitHub 上</a>打开问题！</p><h2>分析 LLM 的性能问题</h2><p>在过去的几个月里，LLM（如 OpenAI 的 GPT 模型）大受欢迎，它为各种产品（从客户助理聊天机器人到数据处理助手，再到编码助手）提供了自然语言接口和核心引擎。这一趋势的一个有趣方面是，基本上所有这些应用都使用了未经专门训练或微调的通用模型。相反，它们是在整个互联网的大范围内训练出来的，因此适用于各种任务。</p><p>那么，我们能否利用这些模型来帮助进行性能分析、调试和优化呢？调查性能问题、找出根本原因并提出优化方案的方法<a href="https://www.brendangregg.com/methodology.html">多种多样</a>。不过，任何性能分析工作的核心都是查看各种工具（如 Linux 命令行工具或可观测性平台）的输出，并对输出进行解释，从而形成有关系统状态的假设。在对 GPT 模型进行培训的材料中，有涵盖软件工程、调试、基础设施分析、操作系统内部、Kubernetes、Linux 命令及其用法以及性能分析方法的资料。因此，这些模型可用于总结、解释和假设性能工程师日常遇到的数据和问题，从而加快工程师完成分析的速度。</p><p>不过，我们还可以更进一步，在工程师自己的调查过程中，不仅仅将 LLM 用于数据分析和问题解答。正如我们稍后将在本篇文章中展示的，在某些情况下，LLM 本身可用于驱动流程，由 LLM 决定运行哪些命令或查看哪些数据源来调试问题。</p><h2>演示</h2><p>有关 sysgrok 支持的全部功能，请查看 GitHub<a href="https://github.com/elastic/sysgrok">代码库</a>。从广义上讲，它支持三种解决问题的方法：</p><h3>方法 1：作为性能、可靠性和其他系统相关数据的分析引擎</h3><p>在这种模式下，LLM 会收到工程师正在使用的另一个工具的输出，如 Linux 命令行工具、剖析器或可观测性平台。sysgrok 的目标是解释、总结并提出补救建议。</p><p>例如，<em>topn</em>子命令会获取剖析器报告的最昂贵函数，解释输出结果，然后提出优化系统的建议。</p><p>这段视频还展示了 sysgrok 提供的聊天功能。当提供 -chat 参数时，sysgrok 将在 LLM 每次回复后进入聊天会话。</p><p>这一功能也可通用于 Linux 命令行工具的输出。例如，在《<a href="https://www.brendangregg.com/Articles/Netflix_Linux_Perf_Analysis_60s.pdf">60 秒内完成 Linux 性能分析》（Linux Performance Analysis in 60 seconds）</a>一文中，Brendan Gregg 概述了 SRE 首次连接到出现性能或稳定性问题的主机时应运行的 10 条命令。<em>analyzecmd</em>子命令将要连接的主机和要执行的命令作为输入，然后为用户分析和汇总命令的输出。我们可以用它来自动完成 Gregg 所描述的过程，为用户提供 10 条命令生成的所有数据的一段式摘要，省去用户逐条查看命令输出的麻烦。</p><h3>方法 2：作为特定性能和可靠性相关任务的重点自动化解决方案</h3><p>在性能工程和 SRE 工作中，有些任务会反复出现。对于这些问题，我们可以建立有针对性的自动化助手，工程师可以直接使用，sysgrok 本身也可以在解决其他问题时使用。</p><p>例如，<em>finfaster</em>子命令将库或程序的名称作为输入，并使用 LLM 查找更快的等效替代库或程序。这是性能工程中非常常见的一项任务。</p><p>这种方法在 sysgrok 中的另一个例子是<em>explainfunction</em>子命令。该子命令使用一个库的名称和该库中的一个函数。它解释了该库的作用及其常见用例，然后解释了其功能。最后，如果该库和函数占用了大量 CPU 资源，它还会提出可能的优化建议。</p><h3>方法 3：作为性能和可靠性问题的自动根本原因分析工具</h3><p>LLM 的使用不仅限于集中问题解答、摘要和类似任务。它也不局限于一次性使用，即向他们提出一个单一的、孤立的问题。sysgrok<em>debughost</em>子命令演示了如何将 LLM 用作"大脑" ，以实现自动解决问题的目标。在这种模式下，LLM 被嵌入到一个进程中，该进程使用 LLM 来决定如何调试特定问题，并赋予它连接主机、执行命令和访问其他数据源的能力。</p><p>debughost 命令可能是 sysgrok 目前最具实验性的部分。它展示了在实现性能分析自动代理的道路上迈出的一步，但要达到这一目标还需要大量的研究&amp;D。</p><h2>结论</h2><p>在这篇文章中，我介绍了 sysgrok，这是一款全新的开源人工智能助手，用于分析、理解和优化系统。我们还讨论了 sysgrok 实现的三大类方法：</p><ol><li><p>性能、可靠性和其他系统相关数据的分析引擎：请参阅 topn、stacktrace、analyzecmd 和 code 子命令。</p></li><li><p>针对特定性能和可靠性相关任务的自动化解决方案：请参阅 explainprocess、explaintfunction 和 findfaster 子命令。</p></li><li><p>自动分析性能和可靠性问题的根本原因：参见 debughost 子命令。</p></li></ol><p>你可以<a href="https://github.com/elastic/sysgrok">在 GitHub 上</a>找到 sysgrok 项目。请随时创建公关和问题，如果您想讨论项目或法律硕士的一般应用，也可以直接通过<a href="mailto:sean.heelan@elastic.co">sean.heelan@elastic.co</a>联系我。</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/open-sourcing-sysgrok-ai-assistant</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/open-sourcing-sysgrok-ai-assistant</guid>
    <category><![CDATA[ML 研究]]></category>
    <dc:creator><![CDATA[Sean Heelan]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltff8f9a2d63790904/6a170bbbcdacbf61eb7d2a26/86f6f563d9f1ee6929ce4afc9005dfacd93f2990-720x420.png" length="0" type="image/png"/>
    <pubDate>Wed, 28 Jun 2023 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>