Penskalaan Otomatis Vertikal adalah fitur yang memungkinkan Dataflow Prime menskalakan memori yang tersedia untuk worker secara dinamis agar sesuai dengan persyaratan tugas. Fitur ini dirancang untuk membuat tugas tahan terhadap error kehabisan memori (OOM) dan memaksimalkan efisiensi pipeline. Dataflow Prime memantau pipeline Anda, mendeteksi situasi saat worker kekurangan atau melebihi memori yang tersedia, lalu mengganti worker tersebut dengan worker baru yang memiliki lebih banyak atau lebih sedikit memori.
Penting: Karena Penskalaan Otomatis Vertikal mengganti worker yang ada dengan worker baru, sebaiknya gunakan container kustom untuk meningkatkan latensi yang mungkin timbul akibat mengubah ukuran worker.
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 flag --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 mendapatkan pengalaman terbaik dengan Penskalaan Otomatis Vertikal, sebaiknya aktifkan Streaming Engine.
Batch
Untuk tugas batch Dataflow Prime, Penskalaan Otomatis Vertikal hanya akan menskalakan setelah terjadi empat error kehabisan memori.
- Penskalaan Otomatis Vertikal menskalakan untuk mencegah kegagalan tugas dan tidak menskalakan.
- Seluruh pool akan menskalakan untuk sisa tugas.
- Jika petunjuk resource digunakan dan beberapa pool dibuat, setiap pool akan menskalakan 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 hal berikut:
- Jangan tetapkan opsi pipeline
--experiments=enable_batch_vmr. - Tetapkan opsi pipeline
--experiments=disable_vertical_memory_autoscaling.
Batasan
- Hanya memori worker yang menskalakan secara vertikal.
- Secara default, penskalaan memori memiliki batas atas 16 GiB dan batas bawah 6 GiB. Saat Anda menggunakan GPU, penskalaan memori memiliki batas atas 26 GiB dan batas bawah 12 GiB. Anda dapat mengubah batas atas dan bawah dengan memberikan petunjuk resource.
- Penskalaan Otomatis Vertikal tidak didukung untuk pool yang menggunakan GPU A100.
- Untuk tugas batch, paket yang menyertakan item yang gagal mungkin akan 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 di dalam perimeter Kontrol Layanan VPC, tugas tersebut akan menggunakan Dataflow Prime tanpa Penskalaan Otersonal 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 worker. Untuk melihat log ini, lihat Metrik tugas Dataflow metrics.
Efek pada Penskalaan Otomatis Horizontal
Di Dataflow Prime, Penskalaan Otomatis Vertikal berfungsi bersama Penskalaan Otomatis Horizontal. Kombinasi ini memungkinkan Dataflow Prime menskalakan worker secara lancar ke atas atau ke bawah agar sesuai dengan kebutuhan pipeline Anda dan memaksimalkan penggunaan kapasitas komputasi.
Menurut desainnya, Penskalaan Otomatis Vertikal (yang menyesuaikan memori worker) terjadi dengan frekuensi yang lebih rendah daripada Penskalaan Otomatis Horizontal (yang menyesuaikan jumlah worker). Penskalaan Otomatis Horizontal dinonaktifkan selama dan hingga 10 menit setelah update dipicu oleh Penskalaan Otomatis Vertikal. Jika ada backlog data input yang signifikan setelah 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 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: 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_autoscalingditetapkan. Untuk pipeline batch, pastikan flagenable_vertical_memory_autoscalingdanenable_batch_vmrditetapkan.Pastikan Anda 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 vertikal worker memerlukan waktu lebih dari beberapa menit, tugas Anda mungkin akan menunjukkan backlog data input yang tinggi dan watermark yang tinggi. Untuk mengatasi masalah ini di pipeline Python, sebaiknya Anda menggunakan container kustom, karena dapat meningkatkan latensi yang mungkin timbul akibat pembentukan ulang worker. Untuk mengatasi masalah ini di pipeline Java, sebaiknya aktifkan Streaming Engine dan Portable Runner. Jika masalah berlanjut setelah mengaktifkan fitur ini, hubungi Dukungan Pelanggan.
Penskalaan Otomatis Vertikal telah mencapai kapasitas memori
Secara default, jika tidak ada petunjuk resource yang diberikan, Penskalaan Otomatis Vertikal tidak akan menskalakan memori di atas 16 GiB per worker (26 GiB saat menggunakan GPU) atau kurang dari 6 GiB per worker (12 GiB saat menggunakan GPU). Saat 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 mengalami error kehabisan memori, Anda dapat menggunakan penyesuaian yang
tepat (petunjuk resource) untuk menentukan persyaratan
memori untuk transformasi Anda dengan menentukan min_ram="numberXB". Setelan ini memungkinkan Dataflow memilih konfigurasi awal untuk worker 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 memerlukan 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 memori.
Batas memori worker 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 Portable Runner. Jika masalah berlanjut atau jika Anda mengamati perilaku ini di pipeline Python, hubungi Dukungan 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 worker.
Pesan ini menunjukkan bahwa Penskalaan Otomatis Vertikal aktif. Tidak adanya pesan ini menunjukkan bahwa Penskalaan Otomatis Vertikal tidak beroperasi di pool worker.
Jika Penskalaan Otomatis Vertikal tidak aktif, lihat Penskalaan Otomatis Vertikal tampaknya tidak berfungsi untuk petunjuk pemecahan masalah.
Update Penskalaan Otomatis Vertikal dipicu untuk mengubah batas memori per worker untuk pool dari X GiB menjadi Y GiB.
Pesan ini menunjukkan bahwa Penskalaan Otomatis Vertikal telah memicu perubahan ukuran memori pool worker.