Gke Ai Troubleshooting Tpu Vbar Oom

作者 google55b4e13eba6d无许可证21K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库今天更新

Diagnoses and prevents vbar_control_agent segfaults, out-of-memory (OOM) errors, and TPU device initialization failures on TPU v6e nodes in GKE caused by race conditions during TPU device resets or high-frequency metrics polling. Use when troubleshooting vbar_control_agent crashes, memory cgroup OOMs in serial console logs, tpu-device-plugin metrics checksum corruption errors, or custom TPU metrics collection conflicts on GKE TPU v6e nodes. Don't use for general non-TPU container OOM troubleshooting or standard GKE node lifecycle operations.

精选包含脚本DevOps & Cloud
AI 生成的概览

通过 Cloud Logging 查询诊断并预防 GKE TPU v6e 节点上的 vbar_control_agent 崩溃与 OOM。

功能
提供分步诊断流程,用于排查 GKE TPU v6e 节点上 vbar_control_agent 段错误、内存 cgroup OOM 以及 TPU 设备初始化失败。它给出用于串口控制台 OOM 和 tpu-device-plugin 指标校验和错误的 Cloud Logging 过滤模板,并检查是否存在自定义 TPU 指标采集。随后给出解决建议,例如停用自定义指标采集或等待 GKE 韧性更新,并附有检查清单和故障特征参考。
适用场景
适用于排查 GKE TPU v6e 节点上的 vbar_control_agent 崩溃、串口控制台日志中的内存 cgroup OOM、tpu-device-plugin 指标校验和损坏,或自定义 TPU 指标采集冲突。不适用于一般非 TPU 容器 OOM 问题或标准 GKE 节点生命周期操作。
运行要求
项目需启用 Cloud Logging,并可通过 gcloud 或等效工具访问项目和集群。随附验证脚本(scripts/validate_queries.sh)和参考文件;实时诊断使用 query_logs 工具。

TPU Connection Failure and VBAR OOM Troubleshooting

Use this skill to systematically diagnose and prevent vbar_control_agent segfaults and Out-Of-Memory (OOM) errors on TPU v6e nodes.

⚠️ Prerequisites

  • Cloud Logging must be enabled for the project.
  • Access to the project and cluster via gcloud or equivalent tool.

🔍 Diagnostic Workflow

Step 0: Context Acquisition & Time Window Definition

Independently gather required context using available GCP/GKE tools or use the provided {variable} placeholders:

  • {project_id}: The GCP Project ID (e.g., customer-ai-project-123).
  • {cluster_name}: The GKE Cluster Name (e.g., tpu-cluster-prod).
  • {node_name}: The Node Name or Instance ID (e.g., tpu-node-1).
  • {workload_name}: The Workload Name / JobSet Name (e.g., my-training-job-456).
  • {namespace}: The Workload Namespace.
  • {issue_time}: The timestamp of the issue (e.g., 2026-04-14T20:00:00Z).
Time Handling & Execution Rules
  1. Window Calculation: If an issue timestamp {issue_time} is provided, calculate the query time window as [{issue_time} - 30m] to [{issue_time} + 30m].
    • Let {start_time} = {issue_time} - 30m
    • Let {end_time} = {issue_time} + 30m
  2. Informational vs. Live Execution: If the user request is informational or query-formulation (e.g. "How can I check...", "How do I determine..."), or if live GCP project resources are not actively targetable, directly output the calculated time window, log names, and Cloud Logging filter templates without attempting live log execution commands.

Step 1: Check for vbar_control_agent OOMs

Look for specific out of memory messages from vbar_control_agent in serial console logs (serialconsole.googleapis.com%2fserial_port_1_output).

  • Tool to use: query_logs (for live diagnostics)
  • Filter Templates:

Serial Console Logs (OOMs):

sql
logName="projects/{project_id}/logs/serialconsole.googleapis.com%2fserial_port_1_output"AND labels."compute.googleapis.com/resource_name"="{node_name}"AND SEARCH(text_payload, "Memory cgroup out of memory: Killed process .* (vbar_control_ag)")AND timestamp >= "{start_time}"AND timestamp <= "{end_time}"
  • Logic: Presence of Memory cgroup out of memory messages related to vbar_control_agent. Stack traces pointing to libtpu::tpunetd::VBARControlHelper::MetricsReadFromVBAR are a strong indicator.
  • Automation: Proceed to next step automatically after reporting findings.
  • Reference: See references/failure_signatures.md for example log patterns.

Step 2: Investigate tpu-device-plugin Metrics Fetch Failures [Low Risk]

Check if tpu-device-plugin is reporting metric fetch failures.

  • Tool to use: query_logs
  • Filter Template:
sql
resource.type="k8s_container"AND resource.labels.project_id="{project_id}"AND resource.labels.cluster_name="{cluster_name}"AND resource.labels.container_name="tpu-device-plugin"AND severity=ERRORAND textPayload:"metrics fetch failed for .* deviceID and .* device path with error: checksum didn't match with the metrics data. Corrupt data found"AND timestamp >= "{start_time}"AND timestamp <= "{end_time}"
  • Logic: Errors indicating "metrics fetch failed" with "checksum didn't match" suggest vBAR memory corruption.
  • Automation: Proceed to next step automatically after reporting findings.

Step 3: Check for Custom Metrics Collection Usage [Low Risk]

Inspect cluster configurations, workloads, or container specs to determine if custom TPU metrics collection mechanisms are deployed.

  • Action: Check if custom scripts or agents (e.g., using libtpu.sdk.tpumonitoring) are deployed that frequently query GetHostMetrics from vBAR Control Agent.

  • Verification Commands:

    • Kubectl Search (Inspect workload env/specs):
    bash
    kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"/"}{.metadata.name}{"\t"}{.spec.containers[*].image}{"\n"}{end}'
    • Log Search Filter (query_logs):
    sql
    resource.type="k8s_container"AND resource.labels.project_id="{project_id}"AND resource.labels.cluster_name="{cluster_name}"AND textPayload:"libtpu.sdk.tpumonitoring"AND timestamp >= "{start_time}"AND timestamp <= "{end_time}"
  • Logic: Confirmation of custom metrics collection helps confirm the race condition hypothesis.

🛠️ Resolution Workflow

Resolution 1: Temporarily Disable Custom Metrics Collection [High Risk]

If a custom metrics collection agent is identified, recommend disabling it.

  • Action: Recommend disabling the custom metrics collector.
  • Justification: Prevents reads from vBAR during device resets, stopping crashes and OOMs.

Resolution 2: Await vbar_control_agent Resiliency Update [Low Risk]

Advise that a permanent fix will be available in a future GKE version.

  • Action: Recommend upgrading GKE when the fix is available.
  • Justification: The updated agent will be resilient to memory corruption and gracefully handle reads from unbound vBARs.

📋 copypaste checklist

  • Acquire context and compute [{start_time}, {end_time}] window.
  • Check for vbar_control_agent segfaults and OOMs using query_logs.
  • Investigate tpu-device-plugin failures using query_logs.
  • Inspect for custom metrics collection usage.
  • Advise disabling custom metrics collection if applicable.
  • Advise awaiting resiliency update.

来源与署名

来源:google/skills位于skills/cloud/gke-ai-troubleshooting-tpu-vbar-oom提交55b4e13

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架

更多来自 google/skills 的技能