Loading...
Loading...
Diagnose GKE Cloud TPU multi-slice training hangs (Megascale `HANG_DETECTED` logs and hang monitored events) using the ML Diagnostics `Megascale XLA (MXLA) Hang Analyzer` (`gcloud alpha mldiagnostics monitored-events`) and 1-minute Cloud Monitoring multi-slice latency metrics (`kubernetes.io/container/multislice/*`). Distinguishes XLA compiler/HLO launch divergence and host data-input stalls from TPU chip, SparseCore, ICI, or network fabric faults. Use when multi-slice TPU training jobs freeze without progressing steps, emit `HANG_DETECTED`, or stall in collective operations. Don't use for gradual step-time throughput drops without hangs (use gke-ai-troubleshooting-tpu-performance-degradation) or pod preemption/eviction restarts (use gke-ai-troubleshooting-jobset-interruption).
npx skill4agent add google/skills gke-ai-troubleshooting-tpu-mxla-hangHANG_DETECTEDMegascale XLA (MXLA) Hang Analyzerkubernetes.io/container/multislice/*gcloudalphagcloud alpha mldiagnosticskubectlgcloud billing projects describe {project_id}gcloud auth logingcloud config set project {project_id}container.googleapis.comlogging.googleapis.commonitoring.googleapis.comhypercomputecluster.googleapis.comjobsetjob1.36.0-gke.4681000gcloud alpha mldiagnostics0.40.0roles/hypercomputecluster.editorroles/monitoring.viewerroles/logging.viewerroles/container.viewerkubectl get nodes[High Risk]roles/container.clusterAdminRead-only rule: Run read-only diagnostic commands only. Never drain, delete, or re-create nodes, or run any other command that changes the cluster. Give the user any fix to apply themselves.
HANG_DETECTEDHANG_DETECTEDMegascale XLA (MXLA) Hang AnalyzerFINGERPRINT_MISMATCHDATA_INPUT_STALLNOT_DETECTEDUNKNOWNHANG_DETECTEDdetectionState: "NOT_DETECTED"UNKNOWN[Low Risk]around{project_id}{location}us-central1{cluster_name}{namespace}{workload_name}{ml_run_id}{issue_time}T{start_time}T - 30m{end_time}T + 30mHANG_DETECTED[Low Risk]HANG_DETECTEDk8s_container[{start_time}, {end_time}]HANG_DETECTEDresource.type="k8s_container"
resource.labels.project_id="{project_id}"
resource.labels.cluster_name="{cluster_name}"
"HANG_DETECTED"
timestamp >= "{start_time}" AND timestamp <= "{end_time}"gcloud alpha mldiagnostics machine-learning-run list{ml_run_id}gcloud alpha mldiagnostics monitored-events listgcloud alpha mldiagnostics monitored-events describeMegascale XLA (MXLA) Hang AnalyzerdetectionStatedetailsrecommendedActionsHANG_DETECTEDdetectionState: "DETECTED"UNKNOWNHANG_DETECTED[Low Risk]kubernetes.io/container/multislice/network/*kubernetes.io/container/multislice/accelerator/*kubernetes.io/node/accelerator/duty_cycle[{start_time}, {end_time}]# 1. P95 multi-slice collective end-to-end latency by pod
histogram_quantile(
0.95,
sum by (pod_name, le) (
rate(kubernetes_io:container_multislice_network_collective_end_to_end_latencies_bucket{
monitored_resource="k8s_container",
project_id="{project_id}",
cluster_name="{cluster_name}"
}[5m])
)
)
# 2. P95 multi-slice DCN transfer latency by pod
histogram_quantile(
0.95,
sum by (pod_name, le) (
rate(kubernetes_io:container_multislice_network_dcn_transfer_latencies_bucket{
monitored_resource="k8s_container",
project_id="{project_id}",
cluster_name="{cluster_name}"
}[5m])
)
)
# 3. P95 host-to-device transfer latency by pod
histogram_quantile(
0.95,
sum by (pod_name, le) (
rate(kubernetes_io:container_multislice_accelerator_host_to_device_transfer_latencies_bucket{
monitored_resource="k8s_container",
project_id="{project_id}",
cluster_name="{cluster_name}"
}[5m])
)
)
# 4. Node TPU duty cycle (Workload Monitoring detects a hang as a prolonged
# period of minimal to no TPU activity)
kubernetes_io:node_accelerator_duty_cycle{
monitored_resource="k8s_node",
project_id="{project_id}",
cluster_name="{cluster_name}"
}[Low Risk]Megascale XLA (MXLA) Hang AnalyzerdetailsrecommendedActionsNodekubectlcontainer.googleapis.com/instance_idkubectl get nodes -l cloud.google.com/gke-tpu-accelerator \
-o jsonpath='{range .items[*]}{.metadata.name}{"\tinstance_id="}{.metadata.annotations.container\.googleapis\.com/instance_id}{"\tblock="}{.metadata.labels.cloud\.google\.com/gce-topology-block}{"\tsubblock="}{.metadata.labels.cloud\.google\.com/gce-topology-subblock}{"\thost="}{.metadata.labels.cloud\.google\.com/gce-topology-host}{"\n"}{end}'FINGERPRINT_MISMATCHPROGRAM_NOT_QUEUEDDATA_INPUT_STALLUNRECOVERABLE_ERRORHANG_DETECTEDNOT_DETECTEDUNKNOWNHANG_DETECTEDgcloud compute instance-groups manageddelete