Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Déboguer des VM Cloud TPU
Ce document explique comment utiliser le package PyPI cloud-tpu-diagnostics pour générer des traces de pile pour les processus exécutés dans des VM TPU. Ce package vide les traces Python lorsqu'une erreur se produit, par exemple des erreurs de segmentation, des exceptions à virgule flottante ou des exceptions d'opération illégale.
De plus, il collecte régulièrement des traces de pile pour vous aider à déboguer les situations où le programme ne répond pas.
Pour utiliser le package PyPI cloud-tpu-diagnostics, vous devez l'installer en exécutant pip install cloud-tpu-diagnostics sur toutes les VM TPU. Pour ce faire, utilisez une commande gcloud compute tpus tpu-vm ssh. Exemple :
Par défaut, les traces de pile sont collectées toutes les 10 minutes. Vous pouvez modifier la durée entre deux événements de collecte de la trace de la pile sur cinq minutes, par exemple:
Cette configuration commence à collecter des traces de pile dans le répertoire /tmp/debugging sur chaque VM TPU. Un agent s'exécute sur toutes les VM TPU et importe les traces d'un répertoire temporaire vers Cloud Logging.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[],[],null,["# Debugging Cloud TPU VMs\n=======================\n\nThis document describes how to use the [cloud-tpu-diagnostics](https://pypi.org/project/cloud-tpu-diagnostics/)\nPyPI package to generate stack traces for processes running in TPU VMs. This\npackage dumps the Python traces when a fault occurs, for example segmentation\nfaults, floating-point exceptions, or illegal operation exceptions.\nAdditionally, it also periodically collects stack traces to help you debug\nsituations when the program is unresponsive.\n\n\nTo use the [cloud-tpu-diagnostics](https://pypi.org/project/cloud-tpu-diagnostics/)\nPyPI package, you must install it by running `pip install cloud-tpu-diagnostics`\non all TPU VMs. You can do this with one `gcloud compute tpus tpu-vm ssh`\ncommand. For example: \n\n```bash\n gcloud compute tpus tpu-vm ssh you-tpu-name \\\n --zone=your-zone \\\n --project=your-project-name \\\n --worker=all \\\n --command=\"pip install cloud-tpu-diagnostics\"\n```\n\nYou must also add the following code to your scripts running on all TPU VMs. \n\n from cloud_tpu_diagnostics import diagnostic\n from cloud_tpu_diagnostics.configuration import debug_configuration\n from cloud_tpu_diagnostics.configuration import diagnostic_configuration\n from cloud_tpu_diagnostics.configuration import stack_trace_configuration\n\n stack_trace_config = stack_trace_configuration.StackTraceConfig(\n collect_stack_trace = True,\n stack_trace_to_cloud = True)\n debug_config = debug_configuration.DebugConfig(\n stack_trace_config = stack_trace_config)\n diagnostic_config = diagnostic_configuration.DiagnosticConfig(\n debug_config = debug_config)\n\nBy default, stack traces are collected every 10 minutes. You can change\nthe duration between two stack trace collection events to 5 minutes, for example: \n\n stack_trace_config = stack_trace_configuration.StackTraceConfig(\n collect_stack_trace = True,\n stack_trace_to_cloud = True,\n stack_trace_interval_seconds = 300)\n\nWrap your main method with `diagnose()` to periodically collect the stack traces: \n\n with diagnostic.diagnose(diagnostic_config):\n run_main()\n\nThis configuration starts collecting stack traces inside the `/tmp/debugging`\ndirectory on each TPU VM. There is an agent running on all TPU VMs that uploads\nthe traces from a temporary directory to Cloud Logging."]]