Penskalaan Otomatis Vertikal

Penskalaan Otomatis Vertikal adalah fitur yang memungkinkan Dataflow Prime untuk secara dinamis menskalakan memori yang tersedia untuk pekerja agar sesuai dengan persyaratan tugas. Fitur ini dirancang untuk membuat tugas tahan terhadap error out-of-memory (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 yang memiliki lebih banyak atau lebih sedikit memori.

Penting: Karena Penskalaan Otomatis Vertikal mengganti pekerja yang ada dengan pekerja baru, sebaiknya gunakan penampung kustom untuk meningkatkan latensi yang mungkin timbul dari perubahan 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 Java dan Python streaming Dataflow Prime mendukung Penskalaan Otomatis Vertikal. Anda dapat menggunakan pipeline Java streaming Dataflow Prime tanpa Streaming Engine. Namun, untuk pengalaman terbaik dengan Penskalaan Otomatis Vertikal, sebaiknya aktifkan Streaming Engine.

Batch

Untuk tugas batch Dataflow Prime, Penskalaan Otomatis Vertikal hanya menskalakan ke atas setelah empat error kehabisan memori terjadi.

  • Penskalaan Otomatis Vertikal meningkatkan skala untuk mencegah kegagalan tugas dan tidak menskalakan ke bawah.
  • Seluruh kumpulan diskalakan untuk sisa tugas.
  • Jika petunjuk resource digunakan dan beberapa kumpulan dibuat, setiap kumpulan akan diskalakan secara terpisah.

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

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

Untuk menonaktifkan Penskalaan Otomatis Vertikal untuk tugas batch, lakukan salah satu tindakan berikut:

  • Jangan tetapkan 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 saat menggunakan GPU). Memberikan petunjuk resource dapat mengubah batas atas dan batas bawah.
  • Penskalaan Otomatis Vertikal tidak didukung untuk kumpulan yang menggunakan GPU A100.
  • Untuk tugas batch, paket yang menyertakan item yang gagal dapat 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.
  • Saat Anda menggunakan penyesuaian yang tepat dengan Penskalaan Otomatis Vertikal, hanya pipeline batch yang didukung.

Memantau Penskalaan Otomatis Vertikal

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

Pengaruh pada Penskalaan Otomatis Horizontal

Di Dataflow Prime, Penskalaan Otomatis Vertikal berfungsi bersama dengan Penskalaan Otomatis Horizontal. Kombinasi ini memungkinkan Dataflow Prime menskalakan pekerja secara lancar ke atas atau ke bawah agar sesuai dengan kebutuhan pipeline Anda dan memaksimalkan penggunaan 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 data input yang tertunda secara signifikan setelah tanda 10 menit ini, Autoscaling Horizontal kemungkinan akan terjadi untuk menghapus data yang tertunda tersebut. Untuk mempelajari Penskalaan Otomatis Horizontal untuk pipeline streaming, lihat Penskalaan otomatis streaming.

Pemecahan masalah

Bagian ini memberikan petunjuk untuk memecahkan masalah umum terkait penskalaan otomatis vertikal.

Penskalaan Otomatis Vertikal tampaknya tidak berfungsi

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

  • Periksa pesan tugas berikut untuk memverifikasi bahwa Penskalaan Otomatis Vertikal 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 Cloud Autoscaling API untuk project Google Cloud Anda. Mengaktifkan API

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

Tugas mengamati backlog tinggi dan watermark tinggi

Petunjuk ini hanya berlaku untuk tugas streaming. Jika pembentukan ulang pekerja secara vertikal memerlukan waktu lebih dari beberapa menit, tugas Anda mungkin menunjukkan backlog data input yang tinggi dan watermark yang tinggi. Untuk menangani masalah ini di pipeline Python, sebaiknya Anda menggunakan penampung kustom, karena penampung tersebut dapat meningkatkan 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 Customer Care.

Penskalaan Otomatis Vertikal telah mencapai kapasitas memori.

Secara default, jika tidak ada petunjuk resource yang diberikan, Penskalaan Otomatis Vertikal tidak menskalakan memori melebihi 16 GiB per pekerja (26 GiB saat menggunakan GPU) atau kurang dari 6 GiB per pekerja (12 GiB saat menggunakan GPU). Jika 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 penyesuaian yang tepat (petunjuk resource) untuk menentukan persyaratan memori untuk transformasi dengan menentukan min_ram="numberXB". Setelan ini memungkinkan Dataflow memilih konfigurasi awal untuk 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 membutuhkan banyak memori, hal ini dapat menyebabkan pipeline Anda menggunakan lebih banyak memori daripada sebelumnya karena peningkatan paralelisme yang tersedia. Dalam kasus tersebut, Anda mungkin perlu mengoptimalkan transformasi untuk mengurangi jejak memorinya.

Batas memori pekerja tidak stabil dan naik turun dari waktu ke waktu meskipun penggunaan memori konstan

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

Pesan log umum

Bagian ini menjelaskan pesan log umum yang dihasilkan 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 mengetahui petunjuk pemecahan masalah.

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

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