21.4. 运行性能分析查询


要运行性能分析查询,您必须创建一个 NodeObservabilityRun 资源。分析查询是一个阻止操作,用于在 30 秒内获取 CRI-O 和 Kubelet 分析数据。分析查询完成后,您必须检索容器文件系统 /run/node-observability 目录中的性能分析数据。数据生命周期通过 emptyDir 卷绑定到代理 pod,因此您可以在代理 pod 处于 running 状态时访问性能分析数据。

重要

您可以在任何时间点上请求一个性能分析查询。

先决条件

  • 已安装 Node Observability Operator。
  • 您已创建了 NodeObservability 自定义资源(CR)。
  • 您可以使用 cluster-admin 权限访问集群。

流程

  1. 创建名为 nodeobservabilityrun.yamlNodeObservabilityRun 资源文件,其中包含以下文本:

    apiVersion: nodeobservability.olm.openshift.io/v1alpha2
    kind: NodeObservabilityRun
    metadata:
      name: nodeobservabilityrun
    spec:
      nodeObservabilityRef:
        name: cluster
    Copy to Clipboard Toggle word wrap
  2. 运行 NodeObservabilityRun 资源来触发性能分析查询:

    $ oc apply -f nodeobservabilityrun.yaml
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令,检查 NodeObservabilityRun 的状态:

    $ oc get nodeobservabilityrun nodeobservabilityrun -o yaml  | yq '.status.conditions'
    Copy to Clipboard Toggle word wrap

    输出示例

    conditions:
    - lastTransitionTime: "2022-07-07T14:57:34Z"
      message: Ready to start profiling
      reason: Ready
      status: "True"
      type: Ready
    - lastTransitionTime: "2022-07-07T14:58:10Z"
      message: Profiling query done
      reason: Finished
      status: "True"
      type: Finished
    Copy to Clipboard Toggle word wrap

    分析查询在状态变为 True 后完成,类型为 Finished

  4. 通过运行以下 bash 脚本,从容器的 /run/node-observability 路径中检索配置集数据:

    for a in $(oc get nodeobservabilityrun nodeobservabilityrun -o yaml | yq .status.agents[].name); do
      echo "agent ${a}"
      mkdir -p "/tmp/${a}"
      for p in $(oc exec "${a}" -c node-observability-agent -- bash -c "ls /run/node-observability/*.pprof"); do
        f="$(basename ${p})"
        echo "copying ${f} to /tmp/${a}/${f}"
        oc exec "${a}" -c node-observability-agent -- cat "${p}" > "/tmp/${a}/${f}"
      done
    done
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat