Fehlerbehebung bei Notebooks

Nach dem Klicken auf "JupyterLab öffnen" passiert nichts

Vergewissern Sie sich, dass Pop-up-Tabs in Ihrem Browser nicht blockiert werden. JupyterLab wird in einem neuen Browsertab geöffnet.

Kein Proxyzugriff auf JupyterLab

Die Instanzeinstellungen von AI Platform Notebooks, die Netzwerkkonfiguration und andere Faktoren können den Proxyzugriff auf JupyterLab verhindern. Stellen Sie mithilfe von SSH eine Verbindung zu JupyterLab her und lesen Sie mehr dazu, warum Sie möglicherweise keinen Proxyzugriff haben.

Beim Öffnen eines Notebooks wird ein 403-Fehler (Forbidden) angezeigt

Wenn Sie nicht auf ein Notebook zugreifen können, versuchen Sie folgendes:

  • Achten Sie darauf, dass das Google-Konto, das auf die Notebookinstanz zugreifen möchte, zumindest eine AI Platform Notebooks IAM-Rolle hat, z. B. Notebooks Runner oder Notebooks Admin.

  • Wenn Sie auf JupyterLab öffnen klicken, um ein Notebook aufzurufen, wird das Notebook in einem neuen Browsertab geöffnet. Falls Sie bei mehreren Google-Konten angemeldet sind, wird der neue Tab mit Ihrem Google-Standardkonto geöffnet. Wenn Sie Ihre Notebook-Instanz nicht mit Ihrem Google-Standardkonto erstellt haben, wird auf dem neuen Browsertab der Fehler 403 (Forbidden) angezeigt.

Beim Öffnen eines Notebooks wird ein 504-Fehler (Gateway Timeout) angezeigt.

Dies ist ein Hinweis auf ein internes Proxy-Zeitlimit oder das Zeitlimit eines Back-End-Servers (Jupyter Zeitlimit).

Wenn Sie nicht auf ein Notebook zugreifen können:

  • Öffnen Sie eine Supportanfrage.

Beim Öffnen eines Notebooks wird ein 524-Fehler (A Timeout Occurred) angezeigt.

Der Proxy hat innerhalb des Zeitlimits keine Antwort vom Agent auf die Anfrage erhalten. Dies ist normalerweise ein Hinweis darauf, dass der Agent keine Verbindung zum Proxyserver herstellt oder die Anfragen auf der Back-End-Serverseite (Jupyter) zu lange dauern. Dieser Fehler tritt typischerweise aufseiten des Nutzers auf, z. B. in Form eines Netzwerkproblems oder wenn der Agent/Jupyter-Server nicht ausgeführt wird.

Wenn Sie nicht auf ein Notebook zugreifen können, versuchen Sie folgendes:

  • Prüfen Sie, ob Ihr Notebook gestartet wurde.

  • Prüfen Sie, ob der Docker-Dienst gestartet wurde und der Agent ausgeführt wird. Wenn der Agent gestartet wurde, starten Sie ihn neu.

  • Achten Sie darauf, dass der Jupyter-Dienst ausgeführt wird. Falls ja, starten Sie den Computer neu.

  • Prüfen Sie, ob Sie die AI Platform Deep Learning VM Image Version M55 oder höher verwenden.

Beim Öffnen eines Notebooks wird ein 598-Fehler (Network Read Timeout) angezeigt

Der Proxy hat seit mehr als zehn Minuten nichts vom Agent empfangen. Dies ist ein starker Hinweis auf einen Agent-/Jupyter-Problem.

Wenn Sie nicht auf ein Notebook zugreifen können, versuchen Sie folgendes:

  • Prüfen Sie, ob Ihr Notebook gestartet wurde.

  • Prüfen Sie, ob der Docker-Dienst gestartet wurde und der Agent ausgeführt wird. Falls ja, starten Sie den Computer neu.

  • Achten Sie darauf, dass der Jupyter-Dienst ausgeführt wird. Falls ja, starten Sie den Computer neu.

  • Prüfen Sie, ob Sie die AI Platform Deep Learning VM Image Version M55 oder höher verwenden.

Beim Herunterladen von Dateien aus JupyterLab wird ein 403-Fehler (Forbidden) angezeigt

Das Paket "notebook" im M23-Release von Deep Learning VM enthält einen Programmfehler, der verhindert, dass Dateien über die JupyterLab-UI heruntergeladen werden können. Weitere Informationen zum Programmfehler finden Sie unter Cannot download files after JL update und Download file functionality is broken in notebook packages version 5.7.6+ (5.7.7, 5.7.8).

Wenn Sie das M23-Release von Deep Learning VM verwenden, können Sie das Problem auf zwei Arten beheben:

  • Verwenden Sie den Safari-Browser. Der Download funktioniert in Safari.

  • Führen Sie ein Downgrade Ihres Notebook-Pakets auf Version 5.7.5 aus.

    So führen Sie ein Downgrade Ihres Notebook-Pakets aus:

    1. Stellen Sie über SSH eine Verbindung zu Ihrer Deep Learning VM her. Informationen zum Herstellen einer SSH-Verbindung zu einer VM finden Sie unter Verbindung zu Instanzen herstellen.

    2. Führen Sie folgende Befehle aus:

      sudo pip3 install notebook==5.7.5
      sudo service jupyter restart
      

Das GPU-Kontingent wurde überschritten

Prüfen Sie auf der Seite Kontingente die Anzahl der in Ihrem Projekt verfügbaren GPUs. Wenn auf der Seite "Kontingente" keine GPUs aufgeführt sind oder Sie zusätzliche GPU-Kontingente benötigen, können Sie eine Erhöhung des Kontingents beantragen. Informationen dazu finden Sie auf der Compute Engine-Seite Ressourcenkontingente unter Weitere Kontingente anfordern.

Neues Notebook wird nicht erstellt (unzureichende Berechtigungen)

Das Erstellen einer Notebook-Instanz dauert normalerweise etwa eine Minute. Wenn Ihre neue Notebook-Instanz auf unbestimmte Zeit im Status "Ausstehend" verbleibt, verfügt das zum Starten der Notebook-Instanz verwendete Dienstkonto möglicherweise nicht über die erforderliche Berechtigung Bearbeiter in Ihrem Google Cloud Platform-Projekt (GCP).

Sie können eine Notebook-Instanz mit einem von Ihnen erstellten benutzerdefinierten Dienstkonto oder im Einzelbenutzermodus mit einer Nutzer-ID starten. Wenn Sie eine Notebook-Instanz im Einzelbenutzermodus aufrufen, initiiert die Notebook-Instanz zuerst den Startvorgang mit dem Compute Engine-Standarddienstkonto und übergibt die Steuerung dann an Ihre Nutzer-ID.

So können Sie prüfen, ob ein Dienstkonto die erforderlichen Berechtigungen hat:

Console

  1. Öffnen Sie in der Cloud Console die Seite "IAM".

    IAM-Seite öffnen

  2. Legen Sie eines dieser Dienstkonten für Ihre Notebook-Instanz fest:

    • Ein benutzerdefiniertes Dienstkonto, das Sie beim Erstellen Ihrer Notebook-Instanz angegeben haben.

    • Das Compute Engine-Standarddienstkonto für Ihr GCP-Projekt, das beim Start der Notebook-Instanz im Einzelbenutzermodus verwendet wird. Das Compute Engine-Standarddienstkonto für Ihr GCP-Projekt hat den Namen project-number-compute@developer.gserviceaccount.com. Beispiel: 113377992299-compute@developer.gserviceaccount.com

  3. Achten Sie darauf, dass Ihr Dienstkonto die Rolle Bearbeiter hat.

  4. Ist dies nicht der Fall, bearbeiten Sie das Dienstkonto und fügen Sie Ihm die Rolle Bearbeiter hinzu.

Weitere Informationen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen in der IAM-Dokumentation.

gcloud

  1. Falls noch nicht geschehen, installieren Sie das gcloud-Befehlszeilentool.

  2. Rufen Sie mit dem folgenden Befehl den Namen und die Projektnummer für Ihr GCP-Projekt ab. Ersetzen Sie project-id durch die Projekt-ID für Ihr GCP-Projekt.

    gcloud projects describe project-id
    

    Die Ausgabe, die den Namen (name:) und die Projektnummer (projectNumber:) für Ihr Projekt enthält, sollte in etwa so aussehen:

    createTime: '2018-10-18T21:03:31.408Z'
    lifecycleState: ACTIVE
    name: my-project-name
    parent:
     id: '396521612403'
     type: folder
    projectId: my-project-id-1234
    projectNumber: '113377992299'
    
  3. Legen Sie eines dieser Dienstkonten für Ihre Notebook-Instanz fest:

    • Ein benutzerdefiniertes Dienstkonto, das Sie beim Erstellen Ihrer Notebook-Instanz angegeben haben.

    • Das Compute Engine-Standarddienstkonto für Ihr GCP-Projekt, das beim Start der Notebook-Instanz im Einzelbenutzermodus verwendet wird. Das Compute Engine-Standarddienstkonto für Ihr GCP-Projekt hat den Namen project-number-compute@developer.gserviceaccount.com. Beispiel: 113377992299-compute@developer.gserviceaccount.com

  4. Fügen Sie dem Dienstkonto die Rolle roles/editor mit dem folgenden Befehl hinzu: Ersetzen Sie project-name durch den Namen Ihres Projekts und service-account-id durch die Dienstkonto-ID für Ihre Notebookinstanz.

    gcloud projects add-iam-policy-binding project-name \
     --member serviceAccount:service-account-id \
     --role roles/editor
    

Beim Erstellen einer Instanz wird die Fehlermeldung "Berechtigung verweigert" angezeigt.

Prüfen Sie beim Erstellen einer neuen Instanz, ob der Nutzer, der die Instanz erstellt, die Berechtigung iam.serviceAccounts.ActAs für das definierte Dienstkonto hat.

Das Dienstkonto auf der Instanz ermöglicht den Zugriff auf andere Google Cloud-Dienste. Sie können jedes Dienstkonto im selben Projekt verwenden, aber zum Erstellen der Instanz benötigen Sie die Rolle "Dienstkontonutzer" (iam.serviceAccounts.actAs). Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.

Das folgende Beispiel zeigt, wie Sie beim Erstellen einer Instanz ein Dienstkonto angeben:

gcloud beta notebooks instances create nb-1 \
  --vm-image-project=deeplearning-platform-release \
  --vm-image-family=tf2-latest-cpu \
  --machine-type=n1-standard-1 \
  --service-account=your_service_account@project_id.iam.gserviceaccount.com \
  --location=us-west1-a

Das Notebook reagiert nicht

Wenn Ihre Notebookinstanz keine Zellen ausführt oder eingefroren zu sein scheint, starten Sie den Kernel neu. Dazu klicken Sie im oberen Menü auf Kernel und dann auf Kernel neu starten. Wenn dies nicht funktioniert, versuchen Sie folgendes:

  • Führen Sie in einer Terminalsitzung im Notebook top aus und prüfen Sie, ob andere Prozesse die CPU auslasten.
  • Prüfen Sie über das Terminal mit df, wie viel Speicherplatz frei oder mit free, wie viel Arbeitsspeicher verfügbar ist.
  • Wählen Sie die Instanz auf der Seite Notebookinstanzen aus und klicken Sie auf Beenden, um die Instanz herunterzufahren. Wenn sie vollständig heruntergefahren ist, wählen Sie die Instanz aus und klicken auf Start.

Prüfen, ob der Docker-Agent ausgeführt wird

Melden Sie sich über SSH bei der Notebookinstanz an, um zu prüfen, ob der Docker-Agent für Notebooks ausgeführt wird:

# Confirm docker service is running
sudo ps -aux | grep docker
# Confirm agent container is running
sudo docker ps
# grab logs
sudo docker logs proxy-agent

Jupyter-Dienststatus prüfen und Logs erfassen

Zum Prüfen des Jupyter-Dienststatus können Sie sich über SSH bei der Notebookinstanz anmelden und Folgendes eingeben:

sudo service jupyter status

So erfassen Sie Jupyter-Dienstlogs:

sudo journalctl -u jupyter.service --no-pager

Jupyter-Dienst neu starten

Sie können den Jupyter-Dienst neu starten, indem Sie die VM über die Seite der Notebookinstanzen stoppen und starten oder sich über SSH in der Notebookinstanz anmelden und Folgendes eingeben:

sudo service jupyter restart