Debug delle VM di Cloud TPU
Questo documento descrive come utilizzare cloud-tpu-diagnostics Pacchetto PyPI per generare analisi dello stack per i processi in esecuzione nelle VM TPU. Questo package esegue il dump delle tracce Python quando si verifica un errore, ad esempio errori di segmentazione, eccezioni di numeri in virgola mobile o eccezioni di operazioni illegali. Inoltre, raccoglie periodicamente le tracce dello stack per aiutarti a eseguire il debug delle situazioni in cui il programma non risponde.
Per utilizzare la diagnostica cloud-tpu-diagnostics
pacchetto PyPI, devi installarlo eseguendo pip install cloud-tpu-diagnostics
su tutte le VM TPU. Puoi farlo con un solo comando gcloud compute tpus tpu-vm ssh
. Ad esempio:
gcloud compute tpus tpu-vm ssh you-tpu-name \ --zone=your-zone \ --project=your-project-name \ --worker=all \ --command="pip install cloud-tpu-diagnostics"
Devi anche aggiungere il codice seguente agli script in esecuzione su tutte le VM TPU.
from cloud_tpu_diagnostics import diagnostic
from cloud_tpu_diagnostics.configuration import debug_configuration
from cloud_tpu_diagnostics.configuration import diagnostic_configuration
from cloud_tpu_diagnostics.configuration import stack_trace_configuration
stack_trace_config = stack_trace_configuration.StackTraceConfig(
collect_stack_trace = True,
stack_trace_to_cloud = True)
debug_config = debug_configuration.DebugConfig(
stack_trace_config = stack_trace_config)
diagnostic_config = diagnostic_configuration.DiagnosticConfig(
debug_config = debug_config)
Per impostazione predefinita, le tracce dello stack vengono raccolte ogni 10 minuti. Puoi modificare la durata tra due eventi di raccolta dell'analisi dello stack a 5 minuti, ad esempio:
stack_trace_config = stack_trace_configuration.StackTraceConfig(
collect_stack_trace = True,
stack_trace_to_cloud = True,
stack_trace_interval_seconds = 300)
Avvolgi il metodo principale con diagnose()
per raccogliere periodicamente le tracce dello stack:
with diagnostic.diagnose(diagnostic_config):
run_main()
Questa configurazione avvia la raccolta delle tracce dello stack all'interno della directory /tmp/debugging
su ogni VM TPU. Su tutte le VM TPU è in esecuzione un agente che carica
le tracce da una directory temporanea a Cloud Logging.