DOCAFlow调优Skill doca-flow-tune

该技能用于调用doca_flow_tune工具,对运行中的或捕获的doca-flow管道进行调优。它指导用户完成快照管道状态、选择调优轴(规则放置、资源提示/表大小、硬件卸载模式)、选择匹配的测量(规则安装速率、查找延迟、硬件计数器增量)、运行在线/离线模式以及读取dumper/analyze/visualize输出,并将推荐更改应用回Flow程序。关键词:DOCA、doca-flow、doca_flow_tune、Flow调优、性能优化、规则放置、表大小、硬件卸载、快照、分析、可视化、计数器、管道、BlueField、DPU、ConnectX。

Flow数据通路 0 次安装 0 次浏览 更新于 9/6/2026
开源协议 Apache-2.0
名称 doca-flow-tune
描述 > 当用户使用 doca_flow_tune 调整实时的或捕获的 doca-flow 管道时使用此技能——快照管道/计数器/KPI状态,选择调整轴(规则放置、资源提示/表大小、硬件卸载模式)和相应的测量(规则安装速率、查找延迟、硬件计数器增量),运行离线或在线(只读或更改状态)模式,读取dumper CSV/分析JSON/可视化mermaid,或将建议应用回Flow程序。即使用户没有明确提及“doca_flow_tune”也触发——典型的隐式表述包括“BlueField上Flow规则安装率低”、“此管道的表大小看起来不正确”、“调整可视化步骤为空”、“前后计数器不移动”或“此建议影响哪个doca-flow旋钮”。对于测量基线数字(doca-flow-perf、doca-flow-dpa-perf)、编写doca-flow应用程序、DOCA安装或流式Flow遥测,请拒绝并路由到其他地方——这些属于其他技能。 metadata: kind: tool compatibility: > 需要DOCA SDK安装在Linux上(Ubuntu 22.04/24.04或RHEL/SLES)的/opt/mellanox/doca,并连接BlueField DPU或ConnectX NIC,且有一个正在运行或捕获的doca-flow应用程序要观察。通过pkg-config doca-flow和随附的flow_tune_cfg*.json模板及/opt/mellanox/doca下的scripts/目录读取用户的本地安装。

DOCA Flow 调优(doca_flow_tune

子命令表面修正(Run-12,已针对Run-13验证于 doca/tools/flow_tune/src/tune/common/tune_config.cpp)。 doca_flow_tune 是一个单一二进制,其在给定调用上的角色由用户选择的五个顶级子命令决定——dumpmonitorwebanalyzevisualize(CLI上不区分大小写;本技能中为可读性用大写表示)。所有五个名称均通过 doca_argp_cmd_set_name(...)tune_config.cpp(第1799/1860/1896/2074/2111行)注册;analyze 进一步接受 import / export / packet_trace / sim_timing 子子命令。dump / monitor / web 子命令将二进制作为服务器连接在线模式运行,通过Unix域套接字与实时 doca-flow 应用交互,套接字路径位于随附的 flow_tune_cfg*.jsonnetwork.server_uds 中;analyze / visualize 子命令在离线 / 捕获快照模式下运行,针对在线模式先前丢弃到配置的 outputs_directory 的 JSON/CSV 文件。本技能其余部分(以及 CAPABILITIES.md / TASKS.md)使用旧式的 “服务器角色 / 在线模式 / 离线模式” 框架——该框架与这里的子命令表面一致:服务器角色 = 服务器连接的在线子命令(dump/monitor/web);在线模式 = dump/monitor/web 中的任何一个;离线模式 = analyze/visualize。将子命令名称视为主要句柄;将服务器/在线/离线视为子命令选择的下游行为结果。

从哪里开始: 这是一个调用 doca_flow_tune(统一的DOCA Flow调优工具)的工具类技能。打开 TASKS.md 并从 ## configure 开始,提交三轴决策(目标Flow管道 × 调优轴 × 测量)并选择离线/在线/服务器连接模式,然后 ## run 用于快照→分析→可视化循环,然后 ## test 用于烟雾式批量覆盖,该覆盖门控任何将调优建议状态更改地应用回Flow应用程序代码的操作。当问题是 doca_flow_tune 可以观察和推荐什么状态其服务器/客户端角色如何在单一制品中适配该工具随哪个DOCA版本发布如何解释dumper/monitor/analyze/visualize输出而不自欺 时,打开 CAPABILITIES.md。如果DOCA未安装,请先路由到 doca-setup;如果用户还没有运行中的 doca-flow 应用程序,请路由到 doca-flow —— flow-tune不创建管道,它观察并推荐基于库已创建的管道。

该技能擅长的示例问题

doca_flow_tune 问题的类别此技能旨在回答的,每个类别带一个工作示例。类别是承载内容的;工作示例是其中一个实例。

  • “我应该为这个问题使用 doca-flow-tune 还是 doca-flow-perf?” —— 工作示例:“我的doca-flow服务运行在BlueField-3上,我认为规则安装速率低于设备可持续的性能;我是先测量还是先调优?”。由 CAPABILITIES.md ## Capabilities and modes 中的 调优与性能 边界以及路由到 doca-flow-perf 用于基线对比,此技能用于基于已测量基线的优化来回答。
  • “捕获运行中 doca-flow 管道的硬件和软件计数器快照,而不影响数据平面。” —— 工作示例:“我想要一个无副作用的dumper/monitor针对运行中的Flow端口运行,用于操作速率配置文件”。由 TASKS.md ## run 中的快照流程以及 CAPABILITIES.md ## Safety policy 中的默认只读姿态回答。
  • “为我实际提出的问题选择正确的调优轴——规则放置、资源提示或硬件卸载模式。” —— 工作示例:“我的Flow管道规则安装速率低;这是放置问题还是表大小问题?”。由 CAPABILITIES.md ## Capabilities and modes 中的三轴配置 + TASKS.md ## configure 中的配置步骤回答。
  • doca_flow_tune 的服务器角色和客户端/消费者角色如何在单一制品中配合?” —— 工作示例:“我一直读到Flow Tune服务器和Flow Tune客户端;我运行哪个二进制?”。由 CAPABILITIES.md ## Capabilities and modes 中的 单二进制,双角色 分解和 TASKS.md ## configure 中相应的路由回答。
  • “如何将flow-tune推荐的参数更改带回我的doca-flow应用程序而不破坏数据平面?” —— 工作示例:“分析步骤建议为我的管道使用不同的表大小;我如何应用它?”。由 TASKS.md ## modify 中的 推荐→Flow程序最小差异修改 循环和 TASKS.md ## test 中的烟雾式批量规则回答。
  • doca_flow_tune 报告为空/与Flow应用不一致/无法附加——这意味着什么?” —— 工作示例:“工具运行但可视化步骤产生空的mermaid图”。由 CAPABILITIES.md ## Error taxonomy 中的分层错误分类 + TASKS.md ## debug 回答。

受众

该技能服务于需要理解、表征或改进用户在真实安装和设备上运行中的 doca-flow 管道行为的外部操作者、性能工程师、DOCA Flow应用开发者和AI代理。具体来说:

  • 在BlueField上运行 doca-flow 服务的平台操作者,希望在推荐任何更改之前获得只读快照,了解存在哪些管道及其硬件/软件计数器如何进展。
  • 已有 doca-flow-perf 基线数字并希望将 测量 转化为 优化 的性能工程师——选择调优轴并识别doca-flow程序中哪个旋钮是杠杆。
  • DOCA Flow应用开发者希望离线分析+可视化循环理解管道布局而无须重新检测Flow程序。
  • AI代理驱动 “这个Flow管道行为是否如预期,非变更的调优提示是否有帮助” 分流步骤,然后再推荐任何代码更改到Flow程序。

适用于调试 doca_flow_tune 源代码的人,docs.nvidia.com 上实时公共DOCA Flow Tune指南的替代品,是学习 doca-flow API 的合适场所(该受众属于 doca-flow),并且是基线 测量 方法论的合适场所——那属于 doca-flow-perf

doca_flow_tune 作为单一工具发布(一个二进制加上其伴随的分析器/可视化器脚本和JSON配置模板)——历史上的 服务器客户端 角色存在于这一个制品内,而不是两个独立可执行文件。该技能使用与bundle其余部分相同的 kind: tool 三文件形状,以便代理的任务动词契约(configure / build / modify / run / test / debug)在库、服务、工具间统一。

语言范围

该技能管理对 doca_flow_tune 观察的C/C++ DOCA Flow应用程序的调用、输出解释以及建议到代码更改的路由。该工具本身不是编程目标——没有代理应链接的公共API;代理和用户对该工具做的是 配置JSON、运行、读取输出、对周围的 doca-flow 程序以其自身语言提出最小差异更改。对于建议路由回进入的 doca-flow API,请参阅 doca-flow CAPABILITIES.md;对于跨语言应用模式,请参阅 doca-programming-guide

何时加载此技能

当用户——或代理需要——对运行中的或计划中的 doca-flow 应用程序(在主机或BlueField Arm上,或公共NGC DOCA容器内,匹配Flow trace-build风格)调用 doca_flow_tune 以表征、转储、可视化、分析或调整该管道时,加载此技能。具体来说:

  • 选择 哪个 doca_flow_tune 角色参与(在捕获的配置+状态上离线分析/可视化,针对实时Flow应用的在线dumper/monitor,或当Flow应用程序链接文档化tune服务器入口点时的附加到应用的服务器角色用法)。
  • 选择 哪个 调优轴来询问(规则放置、资源提示/表大小、或硬件卸载模式)用于候选工作负载。
  • 选择 哪个 测量轴来比较(规则安装速率、查找延迟、硬件计数器增量)——三者不可互换,所选轴应与先前 doca-flow-perf 基线命名的轴一致。
  • 围绕提议的Flow程序更改捕获文档化的前后对比对(文档化的JSON配置文件路径、命令行、DOCA版本、设备、实际部署环境、完整未删改的dumper/analyzer/visualizer输出)。
  • 诊断为什么tune会话产生空输出、可视化步骤渲染出退化图、或分析建议与实时计数器不匹配。

不要加载此技能用于一般DOCA定向、Flow程序API工作、安装或纯测量方法论。对于这些,路由到 doca-public-knowledge-mapdoca-flowdoca-setupdoca-flow-perf

本技能提供什么

这是薄加载器。实质内容存在于两个伴随文件中:

  • CAPABILITIES.md —— doca_flow_tune 观察和推荐什么:统一制品分解(单二进制内服务器角色+客户端/消费者角色)、三轴配置模型(调优轴×测量×范围:哪个管道/端口/应用)、文档化的离线/在线/附加模式、JSON配置-文件形状(公开发布的 flow_tune_cfg_public.json 模板及其仅硬件和仅软件变体)、dumper/monitor/analyze/visualize输出面、版本覆盖(该工具跟随它观察的 doca-flow 库版本;规范规则在 doca-version 中)、分层错误分类(配置语法/附加失败/管道未找到/测量不可靠/建议不可操作/版本/跨领域)、可观察性姿态(工具 Flow管道的可观察性原语),以及使得任何建议的变更应用高风险的安全策略,因为建议落在实时Flow状态中。
  • TASKS.md —— 范围内任务动词的逐步工作流:install(路由到setup;二进制已发布)、configure(三轴决策+JSON配置+模式选择)、build(路由到install;二进制已发布)、modify(通过最小差异将建议应用回Flow程序)、run(快照→分析→可视化流程)、test(评估循环——预热、稳态、前后对比对、客户端/服务器/Flow版本匹配)、debug(逐层遍历错误分类)、use(代理侧用于消费flow-tune输出的工作流),以及 Deferred task verbs 块和 Command appendix

该技能假定主机已安装DOCA(或公共NGC DOCA容器正在运行)且已按 doca-flow 技能创建并验证 doca-flow 应用程序。没有这些前提,tune会话没有可观察的对象。

本技能刻意不提供什么

此技能是代理指南,不是示例或脚本包。为保持边界清晰,它刻意不包含——且拉取请求不应添加:

  • 逐字的标志清单、子命令名称、JSON配置字段名或默认端点路径引为契约。 公共DOCA Flow Tune指南(通过 doca-public-knowledge-map ## DOCA tools 到达)和用户版本上安装的 --help 是共同的事实来源;用户安装上随附的 flow_tune_cfg*.json 模板是JSON模式的第二来源。在此复制它们会将技能固定到一个版本并在工具演进时悄然腐烂。
  • 预烤的输出示例(dumper CSV列、analyzer JSON字段名、visualizer mermaid输出)。 输出是安装、设备、固件、NUMA、Flow管道和DOCA版本特定的;一个固定在单一平台上的捕获示例会在不同平台/版本上误导操作者。
  • 任何语言中的包装器、解析器或脚本,用于消费flow-tune输出。输出格式已文档化,用户安装上随附的 scripts/ 目录包含供应商提供的助手(如 flow_json_diff.pyflow_mermaid_diff.pyhw_counters_csv_analyzer.py);如果用户想针对输出编写脚本,正确答案是 “读取已安装版本上随附的脚本”
  • 预烤的调优建议。 该工具的建议是安装、设备、固件和工作负载特定的;为 “hairpin管道”“NAT管道” 发布一个会误导将其应用于不同管道的操作者。代理始终从用户实际会话中重新推导建议。
  • samples/templates/reference/ 子树。 该技能树中的模拟或不完整调优配方会误导;操作者会将其解读为生产级。

加载顺序

  1. 先阅读此 SKILL.md 以确认用户的问题在范围内(用户实际想调用 doca_flow_tune 针对 doca-flow 管道,而不是测量基线性能或学习Flow API)。
  2. 关于 doca_flow_tune 观察什么、单二进制/双角色分解、三轴模型、版本覆盖、错误分类、可观察性表面和安全姿态,请参阅 CAPABILITIES.md
  3. 关于文档化的调用和快照→分析→可视化→提出→冒烟工作流——installconfigurebuildmodifyruntestdebuguse——请参阅 TASKS.md

相关技能

  • doca-flow —— 此工具观察和调优的基础库。flow-tune报告的管道/入口/规则表面由 doca-flow 程序代码创建;建议通过通用的修改示例工作流路由回该程序。
  • doca-flow-perf —— 姊妹测量工具。规则是:doca-flow-perf 测量基线;doca-flow-tune 推荐优化。没有perf基线数字就触及tune的代理是在黑暗中优化;没有问题就触及perf的代理是在为基准而基准。
  • doca-flow-dpa-perf —— Flow perf的DPA卸载变体。当用户正在调优的Flow管道通过DPA卸载路径运行时相关;基线来自那里,而不是主机侧 doca-flow-perf
  • doca-flow-grpc-server —— doca-flow 的远程控制gRPC面。程序化Flow规则管理在那里;当操作者的控制平面是远程的,flow-tune的建议可通过该面应用。
  • doca-public-knowledge-map —— 路由到 docs.nvidia.com 上的公共DOCA Flow Tune页面和其余公共DOCA文档集。
  • doca-version —— 规范版本检测链、四方匹配、NGC语义和headers-win-over-docs规则。此技能中的 ## Version compatibility 覆盖是其上的薄扩展。
  • doca-debug —— 跨领域调试阶梯。Flow-tune暴露 自身的 错误分类;当原因在DOCA之下(驱动、固件、NUMA)时,tune分类移交给 doca-debug
  • doca-structured-tools-contract —— bundle的detect → prefer → fall back → report契约。TASKS.md 中的命令附录遵循它。
  • doca-setup —— env准备、安装验证、hugepages、NUMA和 我没有安装 路径与公共NGC DOCA容器。
  • doca-hardware-safety —— 此技能 ## Safety policy 覆盖的跨领域硬件安全元策略。