Questa pagina descrive i passaggi per la risoluzione dei problemi, utili in caso di problemi durante l'utilizzo di Vertex AI Workbench.
Consulta anche Risoluzione dei problemi di Vertex AI per ricevere assistenza sull'utilizzo di altri componenti di Vertex AI.
Per filtrare i contenuti di questa pagina, fai clic su un argomento:
Procedure utili
Questa sezione descrive le procedure che potresti trovare utili.
Utilizza SSH per connetterti all'istanza dei blocchi note gestiti dall'utente
Utilizza SSH per connetterti all'istanza digitando il comando seguente in Cloud Shell o in qualsiasi ambiente in cui è installata Google Cloud CLI.
gcloud compute ssh --project PROJECT_ID \
--zone ZONE \
INSTANCE_NAME -- -L 8080:localhost:8080
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona Google Cloud in cui si trova l'istanzaINSTANCE_NAME
: il nome dell'istanza
Puoi anche connetterti all'istanza aprendo la pagina dei dettagli di Compute Engine dell'istanza e facendo clic sul pulsante SSH.
Esegui di nuovo la registrazione con il server Inverting Proxy
Per registrare di nuovo l'istanza di blocchi note gestiti dall'utente con il server proxy inverting interno, puoi arrestare e avviare la VM dalla pagina Blocchi note gestiti dall'utente oppure puoi utilizzare SSH per connetterti all'istanza di blocchi note gestiti dall'utente e inserire:
cd /opt/deeplearning/bin sudo ./attempt-register-vm-on-proxy.sh
verifica lo stato del servizio Docker
Per verificare lo stato del servizio Docker, puoi utilizzare SSH per connetterti alla tua istanza di blocchi note gestiti dall'utente e inserire:
sudo service docker status
Verifica che l'agente Inverting Proxy sia in esecuzione
Per verificare se l'agente proxy inverting del blocco note è in esecuzione, utilizza SSH per connetterti all'istanza di blocchi note gestiti dall'utente e inserisci:
# 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
Verifica lo stato del servizio Jupyter e raccogli i log
Per verificare lo stato del servizio Jupyter, puoi utilizzare SSH per connetterti all'istanza di blocchi note gestiti dall'utente e inserire:
sudo service jupyter status
Per raccogliere i log del servizio Jupyter:
sudo journalctl -u jupyter.service --no-pager
Verifica che l'API interna Jupyter sia attiva
L'API Jupyter deve sempre essere eseguita sulla porta 8080. Puoi verificarlo ispezionando i syslog dell'istanza per trovare una voce simile a:
Jupyter Server ... running at: http://localhost:8080
Per verificare che l'API interna Jupyter sia attiva, puoi anche utilizzare SSH per connetterti alla tua istanza di blocchi note gestiti dall'utente e inserire:
curl http://127.0.0.1:8080/api/kernelspecs
Puoi anche misurare il tempo necessario all'API per rispondere nel caso in cui le richieste richiedano troppo tempo:
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
Per eseguire questi comandi nella tua istanza di Vertex AI Workbench, apri JupyterLab e crea un nuovo terminale.
riavvia il servizio Docker
Per riavviare il servizio Docker, puoi arrestare e avviare la VM dalla pagina Blocchi note gestiti dall'utente oppure puoi utilizzare SSH per connetterti all'istanza di blocchi note gestiti dall'utente e inserire:
sudo service docker restart
Riavvia l'agente Inverting Proxy
Per riavviare l'agente Inverting Proxy, puoi arrestare e avviare la VM dalla pagina Blocchi note gestiti dall'utente oppure puoi utilizzare SSH per connetterti all'istanza di blocchi note gestiti dall'utente e inserire:
sudo docker restart proxy-agent
Riavvia il servizio Jupyter
Per riavviare il servizio Jupyter, puoi arrestare e avviare la VM dalla pagina Blocchi note gestiti dall'utente oppure puoi utilizzare SSH per connetterti all'istanza di blocchi note gestiti dall'utente e inserire:
sudo service jupyter restart
Riavvia l'agente di raccolta Notebooks
Il servizio dell'agente raccolta Notebooks esegue in background un processo Python che verifica lo stato dei servizi principali dell'istanza di Vertex AI Workbench.
Per riavviare il servizio dell'agente raccolta Notebooks, puoi arrestare e avviare la VM dalla console Google Cloud oppure puoi utilizzare SSH per connetterti all'istanza di Vertex AI Workbench e inserire:
sudo systemctl stop notebooks-collection-agent.service
seguito da:
sudo systemctl start notebooks-collection-agent.service
Per eseguire questi comandi nella tua istanza di Vertex AI Workbench, apri JupyterLab e crea un nuovo terminale.
Modifica lo script dell'agente raccolta Notebooks
Per accedere allo script e modificarlo, apri un terminale nella nostra istanza o utilizza SSH per connetterti alla tua istanza di Vertex AI Workbench e inserisci:
nano /opt/deeplearning/bin/notebooks_collection_agent.py
Dopo aver modificato il file, ricordati di salvarlo.
Quindi, devi riavviare il servizio dell'agente di raccolta Notebooks.
Verifica che l'istanza possa risolvere i domini DNS richiesti
Per verificare che l'istanza possa risolvere i domini DNS richiesti, puoi utilizzare SSH per connetterti alla tua istanza di blocchi note gestiti dall'utente e inserire:
host notebooks.googleapis.com
host *.notebooks.cloud.google.com
host *.notebooks.googleusercontent.com
host *.kernels.googleusercontent.com
oppure:
curl --silent --output /dev/null "https://notebooks.cloud.google.com"; echo $?
Se per l'istanza è abilitato Dataproc, puoi verificare che l'istanza risolva *.kernels.googleusercontent.com
eseguendo:
curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://${PROJECT_NUMBER}-dot-${REGION}.kernels.googleusercontent.com/api/kernelspecs | jq .
Per eseguire questi comandi nella tua istanza di Vertex AI Workbench, apri JupyterLab e crea un nuovo terminale.
Crea una copia dei dati utente su un'istanza
Per archiviare una copia dei dati utente di un'istanza in Cloud Storage, completa i passaggi riportati di seguito.
Crea un bucket Cloud Storage (facoltativo)
Nello stesso progetto in cui si trova l'istanza, crea un bucket Cloud Storage in cui archiviare i dati utente. Se hai già un bucket Cloud Storage, salta questo passaggio.
-
Crea un bucket Cloud Storage:
gcloud storage buckets create gs://BUCKET_NAME
SostituisciBUCKET_NAME
con un nome di bucket che soddisfi i requisiti di denominazione dei bucket.
Copiare i dati utente
Nell'interfaccia di JupyterLab della tua istanza, seleziona File > Nuovo > Terminale per aprire una finestra del terminale. Per le istanze di blocchi note gestiti dall'utente, puoi invece connetterti al terminale dell'istanza utilizzando SSH.
Utilizza
gsutil tool
per copiare i dati utente in un bucket Cloud Storage. Il comando di esempio seguente copia tutti i file dalla directory/home/jupyter/
dell'istanza in una directory in un bucket Cloud Storage.gsutil cp -R /home/jupyter/* gs://BUCKET_NAMEPATH
Sostituisci quanto segue:
BUCKET_NAME
: il nome del tuo bucket Cloud StoragePATH
: il percorso della directory in cui vuoi copiare i file, ad esempio:/copy/jupyter/
Indaga su un'istanza bloccata nel provisioning utilizzando gcpdiag
gcpdiag
è uno strumento open source che consente di identificare e risolvere i problemi relativi ai progetti
Google Cloud. gcpdiag
non è un prodotto Google Cloud ufficialmente supportato. Per maggiori
informazioni, consulta il
progetto GCPdiag su GitHub.
gcpdiag
indaga sulle potenziali cause del blocco dello stato del provisioning di un'istanza di Vertex AI Workbench, incluse le seguenti aree:
- Stato: controlla lo stato attuale dell'istanza per garantire che sia bloccata al provisioning e non sia arrestata o attiva.
- Immagine del disco di avvio della VM Compute Engine dell'istanza:
controlla se l'istanza è stata creata con un container personalizzato, un'immagine
workbench-instances
ufficiale, Deep Learning VM Image o immagini non supportate che potrebbero causare il blocco dell'istanza nello stato del provisioning. - Script personalizzati: controlla se l'istanza utilizza script di avvio o post-avvio personalizzati che modificano la porta Jupyter predefinita o interrompono le dipendenze che potrebbero causare il blocco dell'istanza nello stato del provisioning.
- Versione dell'ambiente: controlla se l'istanza utilizza la versione più recente dell'ambiente controllandone l'aggiornabilità. Le versioni precedenti potrebbero causare il blocco dell'istanza nello stato del provisioning.
- Prestazioni delle VM di Compute Engine dell'istanza: controlla le prestazioni attuali della VM per garantire che non vengano compromesse da problemi di utilizzo elevato della CPU, memoria insufficiente o spazio su disco che potrebbero interrompere le normali operazioni.
- Log di sistema o porta seriale di Compute Engine dell'istanza: controlla se l'istanza dispone di log delle porte seriali, che vengono analizzati per garantire che Jupyter sia in esecuzione sulla porta
127.0.0.1:8080
. - SSH e accesso al terminale di Compute Engine dell'istanza: controlla se la VM di Compute Engine dell'istanza è in esecuzione, in modo che l'utente possa utilizzare SSH e aprire un terminale per verificare che l'utilizzo dello spazio in "home/jupyter" sia inferiore all'85%. Se non rimane spazio, l'istanza potrebbe bloccarsi nello stato del provisioning.
- IP esterno disattivato: controlla se l'accesso all'IP esterno è disattivato. Una configurazione di rete errata può causare il blocco dell'istanza nello stato del provisioning.
Cloud Shell
- Copia ed esegui questo comando in Cloud Shell:
gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning --project=PROJECT_ID \ --parameter instance_name=INSTANCE_NAME \ --parameter zone=ZONE
-
Console Google Cloud
- Copia il seguente comando:
- Apri la console Google Cloud e attiva Cloud Shell: Apri la console Cloud
- Incolla il comando copiato.
- Esegui il comando gcpdiag. Verrà scaricata l'immagine Docker gcpdiag e inizierà a eseguire i controlli pertinenti per questo comando. Segui le istruzioni su come correggere i controlli non riusciti.
gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning
--project=PROJECT_ID \
--parameter instance_name=INSTANCE_NAME \
--parameter zone=ZONE
Docker
Puoi
eseguire gcpdiag
utilizzando un wrapper che avvia gcpdiag
in un container Docker.
Funziona su qualsiasi macchina in cui è installato Docker o Podman.
- Copia ed esegui il comando seguente nella workstation locale:
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
- Esegui il comando
gcpdiag
:./gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning --project=PROJECT_ID \ --parameter instance_name=INSTANCE_NAME \ --parameter zone=ZONE
Visualizza tutti i parametri disponibili per questo runbook.
Sostituisci quanto segue:
- PROJECT_ID: l'ID del progetto contenente la risorsa.
- INSTANCE_NAME: il nome dell'istanza di Vertex AI Workbench di destinazione all'interno del progetto.
- ZONE: la zona in cui si trova l'istanza di Vertex AI Workbench di destinazione.
Flag utili:
--project
: per definire il valore PROJECT_ID.--universe-domain
: se applicabile, utilizzato per definire il dominio Trusted Partner Sovereign Cloud che ospita la risorsa.--parameter
o-p
: per definire i parametri per un runbook.
Per maggiori informazioni sui flag disponibili, consulta le istruzioni sull'utilizzo
di gcpdiag
.