Penskalaan Otomatis Vertikal

Penskalaan Otomatis Vertikal adalah fitur yang memungkinkan Dataflow Prime meningkatkan atau menurunkan skala memori yang tersedia secara dinamis bagi pekerja agar sesuai dengan persyaratan tugas. Fitur ini dirancang agar tugas lebih tahan terhadap error kehabisan memori (OOM) dan untuk memaksimalkan efisiensi pipeline. Dataflow Prime memantau pipeline Anda, mendeteksi situasi saat pekerja kekurangan atau melebihi memori yang tersedia, lalu mengganti pekerja tersebut dengan pekerja baru dengan lebih banyak atau lebih sedikit memori.

Penting: Karena Penskalaan Otomatis Vertikal mengganti pekerja yang ada dengan pekerja baru, sebaiknya gunakan container kustom untuk meningkatkan latensi yang mungkin muncul dari pengubahan ukuran pekerja.

Streaming

Penskalaan Otomatis Vertikal diaktifkan secara default untuk semua tugas streaming baru yang menggunakan Dataflow Prime.

Jika meluncurkan tugas dari template melalui antarmuka command line, Anda dapat menonaktifkan Penskalaan Otomatis Vertikal dengan meneruskan tanda --additional_experiments=disable_vertical_memory_autoscaling.

Semua pipeline streaming Java dan Python Dataflow Prime mendukung Penskalaan Otomatis Vertikal. Anda dapat menggunakan pipeline Java streaming Dataflow Prime tanpa Streaming Engine. Namun, untuk mendapatkan pengalaman terbaik dengan Penskalaan Otomatis Vertikal, sebaiknya aktifkan Streaming Engine.

Batch

Untuk tugas batch Dataflow Prime, Penskalaan Otomatis Vertikal hanya akan ditingkatkan skalanya setelah terjadi empat error kehabisan memori.

  • Penskalaan Otomatis Vertikal meningkatkan skala untuk mencegah kegagalan tugas dan tidak menurunkan skala.
  • Keseluruhan kumpulan akan bertambah untuk sisa tugas.
  • Jika petunjuk resource digunakan dan beberapa kumpulan dibuat, setiap kumpulan akan ditingkatkan skalanya secara terpisah.

Untuk tugas batch, Penskalaan Otomatis Vertikal tidak diaktifkan secara default. Guna mengaktifkan Penskalaan Otomatis Vertikal untuk tugas batch, setel opsi pipeline berikut:

  • --experiments=enable_batch_vmr
  • --experiments=enable_vertical_memory_autoscaling

Guna menonaktifkan Penskalaan Otomatis Vertikal untuk tugas batch, lakukan salah satu hal berikut:

  • Jangan setel opsi pipeline --experiments=enable_batch_vmr.
  • Tetapkan opsi pipeline --experiments=disable_vertical_memory_autoscaling.

Batasan

  • Hanya memori pekerja yang diskalakan secara vertikal.
  • Secara default, penskalaan memori memiliki batas atas 16 GiB (26 GiB saat menggunakan GPU dan batas bawah 6 GiB (12 GiB jika menggunakan GPU). Memberikan petunjuk resource dapat mengubah batas atas dan bawah.
  • Penskalaan Otomatis Vertikal tidak didukung untuk kumpulan yang menggunakan GPU A100.
  • Untuk tugas batch, paket yang berisi item yang gagal mungkin dicoba ulang lebih dari 4 kali sebelum pipeline gagal sepenuhnya.
  • Penskalaan Otomatis Vertikal tidak didukung dengan Kontrol Layanan VPC. Jika Anda mengaktifkan Dataflow Prime dan meluncurkan tugas baru dalam perimeter Kontrol Layanan VPC, tugas tersebut akan menggunakan Dataflow Prime tanpa Penskalaan Otomatis Vertikal.

Memantau Penskalaan Otomatis Vertikal

Operasi Penskalaan Otomatis Vertikal dipublikasikan ke log tugas dan pekerja. Untuk melihat log ini, lihat Metrik tugas Dataflow.

Efek pada Penskalaan Otomatis Horizontal

Di Dataflow Prime, Penskalaan Otomatis Vertikal berfungsi bersama Penskalaan Otomatis Horizontal. Dengan kombinasi ini, Dataflow Prime dapat meningkatkan atau menurunkan skala pekerja dengan lancar agar sesuai dengan kebutuhan pipeline Anda dan memaksimalkan pemanfaatan kapasitas komputasi.

Secara desain, Penskalaan Otomatis Vertikal (yang menyesuaikan memori pekerja) terjadi pada frekuensi yang lebih rendah daripada Penskalaan Otomatis Horizontal (yang menyesuaikan jumlah pekerja). Penskalaan Otomatis Horizontal dinonaktifkan selama dan hingga 10 menit setelah update dipicu oleh Penskalaan Otomatis Vertikal. Jika ada backlog data input yang signifikan setelah tanda 10 menit ini, Penskalaan Otomatis Horizontal kemungkinan akan terjadi untuk menghapus backlog tersebut. Untuk mempelajari Penskalaan Otomatis Horizontal untuk pipeline streaming, lihat Penskalaan otomatis streaming.

Pemecahan masalah

Bagian ini berisi petunjuk untuk memecahkan masalah umum terkait penskalaan vertikal.

Penskalaan Otomatis Vertikal sepertinya tidak berfungsi

Jika Penskalaan Otomatis Vertikal tidak berfungsi, periksa detail tugas berikut.

  • Periksa pesan tugas berikut untuk memverifikasi bahwa Penskalaan Otomatis Vertikal telah aktif: Vertical Autoscaling is enabled. This pipeline is receiving recommendations for resources allocated per worker.

    Tidak adanya pesan ini menunjukkan bahwa Penskalaan Otomatis Vertikal tidak berjalan.

  • Untuk pipeline streaming, pastikan flag enable_vertical_memory_autoscaling ditetapkan. Untuk pipeline batch, pastikan tanda enable_vertical_memory_autoscaling dan enable_batch_vmr telah ditetapkan.

  • Pastikan Anda telah mengaktifkan CloudScaling API untuk project Google Cloud Anda. Mengaktifkan API

  • Pastikan tugas Anda menjalankan Dataflow Prime. Untuk mengetahui informasi selengkapnya, baca artikel Mengaktifkan Dataflow Prime.

Pekerjaan mengamati backlog yang tinggi dan watermark yang tinggi

Petunjuk ini hanya berlaku untuk tugas streaming. Jika pembentukan ulang vertikal pekerja memerlukan waktu lebih dari beberapa menit, tugas Anda mungkin menunjukkan backlog data input yang tinggi dan watermark yang tinggi. Untuk mengatasi masalah ini di pipeline Python, kami sangat menyarankan agar Anda menggunakan container kustom, karena container kustom dapat mengurangi latensi yang mungkin timbul dari pembentukan ulang pekerja. Untuk mengatasi masalah ini di pipeline Java, sebaiknya aktifkan Streaming Engine dan Runner v2. Jika masalah berlanjut setelah mengaktifkan fitur ini, hubungi Layanan Pelanggan.

Penskalaan Otomatis Vertikal telah mencapai kapasitas memori.

Secara default, jika tidak ada petunjuk resource yang diberikan, Penskalaan Otomatis Vertikal tidak akan menskalakan memori melebihi 16 GiB per pekerja (26 GiB saat menggunakan GPU) atau kurang dari 6 GiB per pekerja (12 GiB saat menggunakan GPU). Setelah batas ini tercapai, salah satu pesan log berikut akan dibuat di Cloud Logging.

Tugas streaming:

Vertical Autoscaling has a desire to upscale memory, but we have hit the memory scaling limit of X GiB. This is only a problem if the pipeline continues to see memory throttling and/or OOMs.

Tugas batch:

Vertical Autoscaling has a desire to upscale memory, but we have hit the memory scaling limit of 16.0 GiB. Job will fail because we have upsized to maximum size, and the pipeline is still OOMing.

Jika pipeline Anda terus melihat error kehabisan memori, Anda dapat menggunakan Petunjuk resource guna menentukan persyaratan memori untuk transformasi Anda dengan menentukan min_ram="numberXB". Setelan ini memungkinkan Dataflow memilih konfigurasi awal bagi pekerja Anda yang dapat mendukung kapasitas memori yang lebih tinggi. Namun, mengubah konfigurasi awal ini dapat meningkatkan paralelisme laten yang tersedia untuk pipeline Anda. Jika Anda memiliki transformasi yang menggunakan banyak memori, hal ini mungkin menyebabkan pipeline menggunakan lebih banyak memori daripada sebelumnya karena peningkatan paralelisme yang tersedia. Dalam kasus demikian, Anda mungkin perlu mengoptimalkan transformasi untuk mengurangi jejak memorinya.

Catatan: Penskalaan Otomatis Vertikal tidak mencegah error OOM muncul di log pekerja. Jika terjadi error OOM, error tersebut akan terlihat di log pekerja karena Penskalaan Otomatis Vertikal menemukan dan melacak peristiwa OOM.

Batas memori pekerja tidak stabil dan naik turun seiring waktu meskipun penggunaan memori terus-menerus

Petunjuk ini hanya berlaku untuk tugas streaming. Untuk pipeline Java, aktifkan Streaming Engine dan Runner v2. Jika masalah berlanjut atau jika Anda melihat perilaku ini di pipeline Python, hubungi Layanan Pelanggan.

Pesan log umum

Bagian ini menjelaskan pesan log umum yang dibuat saat Anda mengaktifkan Penskalaan Otomatis Vertikal.

Penskalaan Otomatis Vertikal diaktifkan. Pipeline ini menerima rekomendasi untuk resource yang dialokasikan per pekerja.

Pesan ini menunjukkan bahwa Penskalaan Otomatis Vertikal aktif. Tidak adanya pesan ini menunjukkan bahwa Penskalaan Otomatis Vertikal tidak beroperasi di kumpulan pekerja.

Jika Penskalaan Otomatis Vertikal tidak aktif, lihat Penskalaan Otomatis Vertikal sepertinya tidak berfungsi. Apa yang harus saya periksa? untuk petunjuk pemecahan masalah.

Pembaruan Penskalaan Otomatis Vertikal dipicu untuk mengubah batas memori per pekerja untuk kumpulan dari X GiB ke Y GiB.

Pesan ini menunjukkan bahwa Penskalaan Otomatis Vertikal telah memicu perubahan ukuran memori kumpulan pekerja.