Depuração de VMs da Cloud TPU
Este documento descreve como usar o pacote cloud-tpu-diagnostics PyPI para gerar rastreios de pilha para processos em execução em VMs de TPU. Este pacote despeja os rastreios do Python quando ocorre uma falha, por exemplo, falhas de segmentação, exceções de vírgula flutuante ou exceções de operações ilegais. Além disso, também recolhe periodicamente rastreios de pilha para ajudar a depurar situações em que o programa não responde.
Para usar o pacote PyPI cloud-tpu-diagnostics, tem de o instalar executando pip install cloud-tpu-diagnostics
em todas as VMs de TPU. Pode fazê-lo com um gcloud compute tpus tpu-vm ssh
comando. Por exemplo:
gcloud compute tpus tpu-vm ssh you-tpu-name \ --zone=your-zone \ --project=your-project-name \ --worker=all \ --command="pip install cloud-tpu-diagnostics"
Também tem de adicionar o seguinte código aos seus scripts em execução em todas as VMs de 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)
Por predefinição, os rastreios de pilha são recolhidos a cada 10 minutos. Pode alterar a duração entre dois eventos de recolha de rastreios de pilha para 5 minutos, por exemplo:
stack_trace_config = stack_trace_configuration.StackTraceConfig(
collect_stack_trace = True,
stack_trace_to_cloud = True,
stack_trace_interval_seconds = 300)
Envolva o método principal com diagnose()
para recolher periodicamente os rastreios da pilha:
with diagnostic.diagnose(diagnostic_config):
run_main()
Esta configuração começa a recolher rastreios de pilha no diretório /tmp/debugging
em cada VM da TPU. Existe um agente em execução em todas as VMs da TPU que carrega
os rastreios de um diretório temporário para o Cloud Logging.