Nesta página, descrevemos as etapas de solução de problemas que podem ser úteis se você tiver problemas ao usar o Vertex AI Workbench.
Consulte também Solução de problemas da Vertex AI para receber ajuda ao usar outros componentes da Vertex AI.
Para filtrar o conteúdo desta página, clique em um tópico:
Procedimentos úteis
Esta seção descreve procedimentos que podem ser úteis.
Use SSH para se conectar à instância de notebooks gerenciados pelo usuário
Use o SSH para se conectar à instância digitando o seguinte comando no Cloud Shell ou em qualquer ambiente em que a Google Cloud CLI esteja instalada.
gcloud compute ssh --project PROJECT_ID \
--zone ZONE \
INSTANCE_NAME -- -L 8080:localhost:8080
Substitua:
PROJECT_ID
: o ID do projetoZONE
: a zona do Google Cloud em que sua instância está localizadaINSTANCE_NAME
: o nome da instância
Também é possível conectar-se à instância abrindo a página de detalhes do Compute Engine dela e clicando no botão SSH.
Registrar novamente com o servidor Inverting Proxy
Para registrar novamente a instância de notebooks gerenciados pelo usuário no servidor Inverting Proxy interno, interrompa e inicie a VM na página de notebooks gerenciados pelo usuário ou use SSH para se conectar à instância de notebooks gerenciados pelo usuário e digite:
cd /opt/deeplearning/bin sudo ./attempt-register-vm-on-proxy.sh
Verificar o status do serviço do Docker
Para verificar o status do serviço do Docker, use ssh para se conectar a instância de notebooks gerenciados pelo usuário e digite:
sudo service docker status
Verifique se o agente do Inverting Proxy está em execução
Para verificar se o agente Inverting Proxy do notebook está em execução, use SSH para se conectar à instância de notebooks gerenciados pelo usuário e digite:
# Confirm Inverting Proxy agent Docker container is running (proxy-agent) sudo docker ps # Verify State.Status is running and State.Running is true. sudo docker inspect proxy-agent # Grab logs sudo docker logs proxy-agent
Verifique o status do serviço Jupyter e colete os registros
Para verificar o status do serviço Jupyter, use ssh para se conectar à instância de notebooks gerenciados pelo usuário e digite:
sudo service jupyter status
Para coletar os registros do serviço Jupyter:
sudo journalctl -u jupyter.service --no-pager
Verificar se a API interna do Jupyter está ativa
A API Jupyter precisa ser executada sempre na porta 8080. Para verificar se isso está acontecendo, inspecione os syslogs da instância em busca de uma entrada semelhante a esta:
Jupyter Server ... running at: http://localhost:8080
Para verificar se a API interna do Jupyter está ativa, use SSH para se conectar à instância de notebooks gerenciados pelo usuário e digite:
curl http://127.0.0.1:8080/api/kernelspecs
Também é possível medir o tempo que a API leva para responder, caso as solicitações estejam demorando muito:
time curl -V http://127.0.0.1:8080/api/status
time curl -V http://127.0.0.1:8080/api/kernels
time curl -V http://127.0.0.1:8080/api/connections
Para executar esses comandos na instância do Vertex AI Workbench, abra o JupyterLab e crie um terminal.
Reinicie o serviço do Docker
Para reiniciar o serviço do Docker, interrompa e inicie a VM na página de notebooks gerenciados pelo usuário ou use o SSH para se conectar à instância de notebooks gerenciados pelo usuário e digite:
sudo service docker restart
Reiniciar o agente do Inverting Proxy
Para reiniciar o agente Inverting Proxy, interrompa e inicie a VM na página de notebooks gerenciados pelo usuário ou use o SSH para se conectar à instância de notebooks gerenciados pelo usuário e digite:
sudo docker restart proxy-agent
Reiniciar o serviço Jupyter
Para reiniciar o serviço do Jupyter, interrompa e inicie a VM na página de notebooks gerenciados pelo usuário ou use o SSH para se conectar à instância de notebooks gerenciados pelo usuário e digite:
sudo service jupyter restart
Reiniciar o agente de coleta de notebooks
O serviço do agente de coleta de notebooks executa um processo Python em segundo plano que verifica o status dos principais serviços da instância do Vertex AI Workbench.
Para reiniciar o serviço do agente de coleta de notebooks, interrompa e inicie a VM no console do Google Cloud ou use SSH para se conectar à instância do Vertex AI Workbench e digite:
sudo systemctl stop notebooks-collection-agent.service
seguido por:
sudo systemctl start notebooks-collection-agent.service
Para executar esses comandos na instância do Vertex AI Workbench, abra o JupyterLab e crie um terminal.
Modificar o script do agente de coleta de notebooks
Para acessar e editar o script, abra um terminal na instância ou use SSH para se conectar à instância do Vertex AI Workbench e digite:
nano /opt/deeplearning/bin/notebooks_collection_agent.py
Depois de editar o arquivo, salve-o.
Em seguida, reinicie o serviço do agente de coleta de notebooks.
Verificar se a instância pode resolver os domínios DNS necessários
Para verificar se a instância pode resolver os domínios DNS necessários, use SSH para se conectar à instância de notebooks gerenciados pelo usuário e digite:
host notebooks.googleapis.com
host *.notebooks.cloud.google.com
host *.notebooks.googleusercontent.com
host *.kernels.googleusercontent.com
ou
curl --silent --output /dev/null "https://notebooks.cloud.google.com"; echo $?
Se a instância tiver o Dataproc ativado, você poderá verificar se ela
resolve *.kernels.googleusercontent.com
executando o seguinte:
curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://${PROJECT_NUMBER}-dot-${REGION}.kernels.googleusercontent.com/api/kernelspecs | jq .
Para executar esses comandos na instância do Vertex AI Workbench, abra o JupyterLab e crie um terminal.
Fazer uma cópia dos dados do usuário em uma instância
Para armazenar uma cópia dos dados do usuário da sua instância no Cloud Storage, conclua as etapas a seguir.
Criar um bucket do Cloud Storage (opcional)
No mesmo projeto em que sua instância está localizada, crie um bucket do Cloud Storage para armazenar os dados do usuário. Caso você já tenha um bucket do Cloud Storage, pule esta etapa.
-
Create a Cloud Storage bucket:
Replacegcloud storage buckets create gs://BUCKET_NAME
BUCKET_NAME
with a bucket name that meets the bucket naming requirements.
Copiar dados do usuário
Na interface da instância do JupyterLab, selecione File > New > Terminal para abrir uma janela de terminal. Para instâncias de notebooks gerenciados pelo usuário, é possível se conectar ao terminal da instância usando SSH.
Use a gcloud CLI para copiar os dados do usuário para um bucket do Cloud Storage. O exemplo de comando a seguir copia todos os arquivos do diretório
/home/jupyter/
da instância para um diretório em um bucket do Cloud Storage.gcloud storage cp /home/jupyter/* gs://BUCKET_NAMEPATH --recursive
Substitua:
BUCKET_NAME
: o nome do bucket do Cloud StoragePATH
: o caminho para o diretório em que você quer copiar os arquivos, por exemplo:/copy/jupyter/
Investigar uma instância que está com problemas de provisionamento usando o gcpdiag
gcpdiag
é uma ferramenta de código aberto. Não é um produto do Google Cloud oficialmente compatível.
Use a ferramenta gcpdiag
para identificar e corrigir problemas no projeto do Google Cloud. Para mais informações, consulte o projeto gcpdiag no GitHub.
gcpdiag
investiga as possíveis causas de uma
instância do Vertex AI Workbench ficar presa no status de provisionamento,
incluindo as seguintes áreas:
- Status: verifica o status atual da instância para confirmar se ela está travada no provisionamento e não interrompida ou ativa.
- Imagem de disco de inicialização da VM do Compute Engine da instância:
verifica se a instância foi criada com um contêiner personalizado, uma imagem
workbench-instances
oficial, Deep Learning VM Images ou imagens sem suporte que podem causar o travamento dela no status de provisionamento. - Scripts personalizados: verifica se a instância está usando scripts personalizados de inicialização ou pós-inicialização que mudam a porta padrão do Jupyter ou quebram dependências que podem fazer com que a instância fique presa no status de provisionamento.
- Versão do ambiente: verifica se a instância está usando a versão mais recente do ambiente, verificando a capacidade de upgrade dela. Versões anteriores podem fazer com que a instância fique presa no status de provisionamento.
- Desempenho da VM do Compute Engine da instância: verifica o desempenho atual da VM para garantir que ela não esteja prejudicada pelo uso de CPU alto, por memória insuficiente ou por problemas de espaço em disco que possam interromper as operações normais.
- Porta serial do Compute Engine ou
geração de registros do sistema da instância: verifica se a instância tem
registros de porta serial, que são analisados para
garantir que o Jupyter esteja em execução na porta
127.0.0.1:8080
. - Acesso SSH e de terminal do Compute Engine da instância: verifica se a VM do Compute Engine da instância está em execução para que o usuário possa usar SSH e abrir um terminal para verificar se o uso de espaço em home/jupyter é inferior a 85%. Quando não há espaço, a instância pode ficar presa no status de provisionamento.
- IP externo desativado: verifica se o acesso a IPs externos está desativado. Uma configuração de rede incorreta pode fazer com que a instância fique presa no status de provisionamento.
Console do Google Cloud
- Preencha e copie o comando a seguir.
- Abra o console do Google Cloud e ative o Cloud Shell. Abrir Console do Cloud
- Cole o comando copiado.
- Execute o comando
gcpdiag
, que faz o download da imagem Dockergcpdiag
. e realiza verificações de diagnóstico. Se aplicável, siga as instruções de saída para corrigir verificações com falha.
gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
--parameter project_id=PROJECT_ID \
--parameter instance_name=INSTANCE_NAME \
--parameter zone=ZONE
Docker
Você pode
executar gcpdiag
usando um wrapper que inicia gcpdiag
em um contêiner do Docker. Docker ou
Podman precisa ser instalado.
- Copie e execute o seguinte comando na estação de trabalho local.
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
- Execute o comando
gcpdiag
../gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \ --parameter project_id=PROJECT_ID \ --parameter instance_name=INSTANCE_NAME \ --parameter zone=ZONE
Veja os parâmetros disponíveis para este runbook.
Substitua:
- PROJECT_ID: o ID do projeto que contém o recurso.
- INSTANCE_NAME: o nome da instância de destino do Vertex AI Workbench no projeto.
- ZONE: a zona em que a instância de destino do Vertex AI Workbench está.
Flags úteis
--universe-domain
: se aplicável, a Nuvem soberana de parceiro confiável que hospeda o recurso--parameter
ou-p
: parâmetros do runbook
Para conferir uma lista e descrição de todas as flags da ferramenta gcpdiag
, consulte
Instruções de uso do gcpdiag
.