Depurar VMs do Cloud TPU
Neste documento, aprenda a usar o pacote cloud-tpu-diagnostics do PyPI para gerar stack traces de processos em execução em VMs de TPU. Esse pacote despeja os traces do Python quando ocorre uma falha, como falhas de segmentação, exceções de ponto flutuante ou exceções de operação ilegal. Além disso, ele coleta periodicamente stack traces para ajudar você a depurar situações em que o programa não responde.
Execute pip install cloud-tpu-diagnostics em todas as VMs de TPU
para usar o pacote cloud-tpu-diagnostics
do PyPI. É possível fazer isso com um
único comando gcloud compute tpus tpu-vm ssh. 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"
Você também precisa adicionar o código a seguir aos 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 padrão, os stack traces são coletados a cada 10 minutos. Por exemplo, é possível mudar a duração entre dois eventos de coleta de stack traces para cinco minutos:
stack_trace_config = stack_trace_configuration.StackTraceConfig(
collect_stack_trace = True,
stack_trace_to_cloud = True,
stack_trace_interval_seconds = 300)
Faça a união do método principal com diagnose() para coletar periodicamente os stack traces:
with diagnostic.diagnose(diagnostic_config):
run_main()
Essa configuração começa a coleta de stack traces no diretório /tmp/debugging
em cada VM de TPU. Há um agente em execução em todas as VMs de TPU que faz upload dos
traces de um diretório temporário para o Cloud Logging.