Memecahkan Masalah Vertex AI Workbench

Halaman ini menjelaskan langkah-langkah pemecahan masalah yang mungkin berguna jika Anda mengalami masalah saat menggunakan Vertex AI Workbench.

Lihat juga Pemecahan Masalah Vertex AI untuk mendapatkan bantuan dalam menggunakan komponen Vertex AI lainnya.

Untuk memfilter konten halaman ini, klik topik:

Prosedur yang bermanfaat

Bagian ini menjelaskan prosedur yang mungkin berguna bagi Anda.

Menggunakan SSH untuk terhubung ke instance notebook yang dikelola pengguna

Gunakan ssh untuk terhubung ke instance Anda dengan mengetikkan perintah berikut di Cloud Shell atau lingkungan apa pun tempat Google Cloud CLI diinstal.

gcloud compute ssh --project PROJECT_ID \
  --zone ZONE \
  INSTANCE_NAME -- -L 8080:localhost:8080

Ganti kode berikut:

  • PROJECT_ID: project ID Anda.
  • ZONE: Zona Google Cloud tempat instance Anda berada
  • INSTANCE_NAME: Nama instance Anda

Anda juga dapat terhubung ke instance dengan membuka halaman detail Compute Engine instance, lalu mengklik tombol SSH.

Mendaftar ulang dengan server Inverting Proxy

Untuk mendaftarkan ulang instance notebook yang dikelola pengguna dengan server Inverting Proxy internal, Anda dapat menghentikan dan memulai VM dari halaman notebook yang dikelola pengguna atau Anda dapat menggunakan ssh untuk terhubung ke instance notebook yang dikelola pengguna dan masukkan:

cd /opt/deeplearning/bin
sudo ./attempt-register-vm-on-proxy.sh

Memverifikasi status layanan Docker

Untuk memverifikasi status layanan Docker, Anda dapat menggunakan ssh untuk terhubung ke instance notebook yang dikelola pengguna, lalu masukkan:

sudo service docker status

Memverifikasi bahwa agen Inverting Proxy sedang berjalan

Untuk memverifikasi apakah notebook Agen Inverting Proxy sedang berjalan, gunakan ssh untuk terhubung ke instance notebook yang dikelola pengguna, lalu masukkan:

# 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

Verifikasi status layanan Jupyter dan kumpulkan log

Untuk memverifikasi status layanan Jupyter, Anda dapat menggunakan ssh untuk terhubung ke instance notebook yang dikelola pengguna dan masukkan:

sudo service jupyter status

Untuk mengumpulkan log layanan Jupyter:

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

Memverifikasi bahwa API internal Jupyter aktif

Jupyter API harus selalu berjalan di port 8080. Anda dapat memverifikasinya dengan memeriksa syslog instance untuk menemukan entri yang mirip dengan:

Jupyter Server ... running at:
http://localhost:8080

Untuk memverifikasi bahwa API internal Jupyter aktif, Anda juga dapat menggunakan ssh untuk terhubung ke instance notebook yang dikelola pengguna, lalu masukkan:

curl http://127.0.0.1:8080/api/kernelspecs

Anda juga dapat mengukur waktu yang diperlukan API untuk merespons jika permintaan memerlukan waktu terlalu lama:

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

Untuk menjalankan perintah ini di instance Vertex AI Workbench, buka JupyterLab, dan buat terminal baru.

Memulai ulang layanan Docker

Untuk memulai ulang layanan Docker, Anda dapat menghentikan dan memulai VM dari halaman notebook yang dikelola pengguna atau menggunakan ssh untuk terhubung ke pengguna instance notebook terkelola dan masukkan:

sudo service docker restart

Memulai ulang agen Inverting Proxy

Untuk memulai ulang agen Inverting Proxy, Anda dapat menghentikan dan memulai VM dari halaman notebook yang dikelola pengguna atau menggunakan ssh untuk terhubung ke pengguna -managed notebooks, lalu masukkan:

sudo docker restart proxy-agent

Mulai ulang layanan Jupyter

Untuk memulai ulang layanan Jupyter, Anda dapat menghentikan dan memulai VM dari halaman notebook yang dikelola pengguna atau menggunakan ssh untuk terhubung ke pengguna instance notebook terkelola dan masukkan:

sudo service jupyter restart

Memulai ulang Agen Pengumpulan Notebook

Layanan Agen Pengumpulan Notebook menjalankan proses Python di latar belakang yang memverifikasi status layanan inti instance Vertex AI Workbench.

Untuk memulai ulang layanan Agen Pengumpulan Notebook, Anda dapat menghentikan dan memulai VM dari konsol Google Cloud atau menggunakan ssh untuk terhubung ke instance Vertex AI Workbench, lalu masukkan:

sudo systemctl stop notebooks-collection-agent.service

diikuti dengan:

sudo systemctl start notebooks-collection-agent.service

Untuk menjalankan perintah ini di instance Vertex AI Workbench, buka JupyterLab, dan buat terminal baru.

Mengubah skrip Agen Pengumpulan Notebook

Untuk mengakses dan mengedit skrip, buka terminal di instance kami atau gunakan ssh untuk terhubung ke instance Vertex AI Workbench, lalu masukkan:

nano /opt/deeplearning/bin/notebooks_collection_agent.py

Setelah mengedit file, jangan lupa untuk menyimpannya.

Kemudian, Anda harus memulai ulang layanan Agen Pengumpulan Notebook.

Memverifikasi bahwa instance dapat me-resolve domain DNS yang diperlukan

Untuk memverifikasi bahwa instance dapat me-resolve domain DNS yang diperlukan, Anda dapat menggunakan ssh untuk terhubung ke instance notebook yang dikelola pengguna, lalu masukkan:

host notebooks.googleapis.com
host *.notebooks.cloud.google.com
host *.notebooks.googleusercontent.com
host *.kernels.googleusercontent.com

atau:

curl --silent --output /dev/null "https://notebooks.cloud.google.com"; echo $?

Jika instance mengaktifkan Dataproc, Anda dapat memverifikasi bahwa instance menyelesaikan *.kernels.googleusercontent.com dengan menjalankan:

curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://${PROJECT_NUMBER}-dot-${REGION}.kernels.googleusercontent.com/api/kernelspecs | jq .

Untuk menjalankan perintah ini di instance Vertex AI Workbench, buka JupyterLab, dan buat terminal baru.

Membuat salinan data pengguna pada instance

Untuk menyimpan salinan data pengguna instance di Cloud Storage, selesaikan langkah-langkah berikut.

Membuat bucket Cloud Storage (opsional)

Dalam project yang sama tempat instance Anda berada, buat bucket Cloud Storage tempat Anda dapat menyimpan data pengguna. Jika sudah memiliki bucket Cloud Storage, lewati langkah ini.

  • Buat bucket Cloud Storage:
    gcloud storage buckets create gs://BUCKET_NAME
    Ganti BUCKET_NAME dengan nama bucket yang memenuhi persyaratan penamaan bucket.

Salin data pengguna Anda

  1. Di antarmuka JupyterLab instance Anda, pilih File > New > Terminal untuk membuka jendela terminal. Untuk instance notebook yang dikelola pengguna, Anda dapat terhubung ke terminal instance dengan menggunakan SSH.

  2. Gunakan gcloud CLI untuk menyalin data pengguna ke bucket Cloud Storage. Contoh perintah berikut menyalin semua file dari direktori /home/jupyter/ instance ke direktori dalam bucket Cloud Storage.

    gcloud storage cp /home/jupyter/* gs://BUCKET_NAMEPATH --recursive
    

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket Cloud Storage Anda
    • PATH: jalur ke direktori tempat Anda ingin menyalin file, misalnya: /copy/jupyter/

Selidiki instance yang macet dalam penyediaan menggunakan gcpdiag

gcpdiag adalah alat open source. Ini bukan produk Google Cloud yang didukung secara resmi. Anda dapat menggunakan alat gcpdiag untuk membantu mengidentifikasi dan memperbaiki masalah project Google Cloud. Untuk mengetahui informasi selengkapnya, lihat project gcpdiag di GitHub.

Runbook gcpdiag ini menyelidiki potensi penyebab instance Vertex AI Workbench macet dalam status penyediaan, termasuk area berikut:
  • Status: Memeriksa status instance saat ini untuk memastikan bahwa instance tersebut macet dalam penyediaan dan tidak dihentikan atau aktif.
  • Image disk booting VM Compute Engine instance: Memeriksa apakah instance dibuat dengan penampung kustom, image workbench-instances resmi, Image VM Deep Learning, atau image yang tidak didukung yang dapat menyebabkan instance macet dalam status penyediaan.
  • Skrip kustom: Memeriksa apakah instance menggunakan skrip startup atau pasca-startup kustom yang mengubah port Jupyter default atau merusak dependensi yang dapat menyebabkan instance macet dalam status penyediaan.
  • Versi lingkungan: Memeriksa apakah instance menggunakan versi lingkungan terbaru dengan memeriksa kemampuan upgrade-nya. Versi sebelumnya dapat menyebabkan instance macet dalam status penyediaan.
  • Performa VM Compute Engine instance: Memeriksa performa VM saat ini untuk memastikan bahwa VM tidak terganggu oleh penggunaan CPU yang tinggi, memori yang tidak memadai, atau masalah ruang disk yang dapat mengganggu operasi normal.
  • Port serial Compute Engine atau logging sistem instance: Memeriksa apakah instance memiliki log port serial, yang dianalisis untuk memastikan Jupyter berjalan di port 127.0.0.1:8080.
  • Akses SSH dan terminal Compute Engine instance: Memeriksa apakah VM Compute Engine instance berjalan sehingga pengguna dapat SSH dan membuka terminal untuk memverifikasi bahwa penggunaan ruang di 'home/jupyter' lebih rendah dari 85%. Jika tidak ada ruang yang tersisa, hal ini dapat menyebabkan instance stuck dalam status penyediaan.
  • IP eksternal dinonaktifkan: Memeriksa apakah akses IP eksternal dinonaktifkan. Konfigurasi jaringan yang salah dapat menyebabkan instance macet dalam status penyediaan.

Konsol Google Cloud

  1. Selesaikan, lalu salin perintah berikut.
  2. gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
        --parameter project_id=PROJECT_ID \
        --parameter instance_name=INSTANCE_NAME \
        --parameter zone=ZONE
  3. Buka konsol Google Cloud dan aktifkan Cloud Shell.
  4. Buka Cloud Console
  5. Tempel perintah yang disalin.
  6. Jalankan perintah gcpdiag, yang mendownload image docker gcpdiag, lalu melakukan pemeriksaan diagnostik. Jika berlaku, ikuti petunjuk output untuk memperbaiki pemeriksaan yang gagal.

Docker

Anda dapat menjalankan gcpdiag menggunakan wrapper yang memulai gcpdiag dalam penampung Docker. Docker atau Podman harus diinstal.

  1. Salin dan jalankan perintah berikut di workstation lokal Anda.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Jalankan perintah gcpdiag.
    ./gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
        --parameter project_id=PROJECT_ID \
        --parameter instance_name=INSTANCE_NAME \
        --parameter zone=ZONE

Lihat parameter yang tersedia untuk runbook ini.

Ganti kode berikut:

  • PROJECT_ID: ID project yang berisi resource.
  • INSTANCE_NAME: Nama instance Vertex AI Workbench target dalam project Anda.
  • ZONE: Zona tempat instance Vertex AI Workbench target Anda berada.

Flag yang berguna:

Untuk mengetahui daftar dan deskripsi semua flag alat gcpdiag, lihat petunjuk penggunaan gcpdiag.