Menggunakan Spot VM dengan beban kerja Batch

Azure Batch menawarkan mesin virtual Spot (VM) untuk mengurangi biaya beban kerja Batch. Spot VM memungkinkan jenis beban kerja Batch baru dengan memungkinkan daya komputasi dalam jumlah besar untuk digunakan dengan biaya rendah.

Spot VM memanfaatkan kelebihan kapasitas di Azure. Saat Anda menentukan VM Spot di kumpulan Anda, Azure Batch dapat menggunakan surplus ini, jika tersedia.

Tradeoff untuk menggunakan Spot VM adalah bahwa VM tersebut mungkin tidak selalu tersedia, atau mereka mungkin didahului kapan saja, tergantung pada kapasitas yang tersedia. Karena alasan ini, VM Spot paling cocok untuk beban kerja pemrosesan batch dan asinkron di mana waktu penyelesaian pekerjaan fleksibel dan pekerjaan didistribusikan ke banyak VM.

Spot VM ditawarkan dengan harga yang lebih murah dibandingkan dengan VM khusus. Untuk mempelajari selengkapnya tentang harga, lihat Harga batch.

Perbedaan antara VM Spot dan VM berprioritas rendah

Batch menawarkan dua jenis VM preemptible dengan biaya rendah:

  • Spot VM, penawaran seluruh Azure modern juga tersedia sebagai VM instans tunggal atau Virtual Machine Scale Sets.
  • VM berprioritas rendah, penawaran warisan hanya tersedia melalui Azure Batch.

Jenis simpul yang Anda dapatkan tergantung pada mode alokasi kumpulan akun Batch Anda, yang dapat diatur selama pembuatan akun. Akun batch yang menggunakan mode alokasi kumpulan langganan pengguna selalu mendapatkan VM Spot. Akun batch yang menggunakan mode alokasi kumpulan terkelola Batch selalu mendapatkan VM berprioritas rendah.

Peringatan

VM berprioritas rendah akan dihentikan setelah 30 September 2025. Silakan migrasikan ke Spot VM di Batch sebelum itu.

Azure Spot VM dan VM berprioritas rendah Batch serupa tetapi memiliki beberapa perbedaan perilaku.

Spot VM VM berprioritas rendah
Akun Batch yang didukung Akun Batch langganan pengguna Akun Batch yang dikelola Batch
Konfigurasi kumpulan Batch yang didukung Konfigurasi Komputer Virtual Konfigurasi Mesin Virtual dan Konfigurasi Layanan Cloud (tidak digunakan lagi)
Wilayah yang telah tersedia Semua wilayah yang mendukung Spot VM Semua wilayah kecuali Microsoft Azure yang dioperasikan oleh 21Vianet
Kelayakan pelanggan Tidak tersedia untuk beberapa jenis penawaran langganan. Lihat selengkapnya tentang batasan Spot. Tersedia untuk semua pelanggan Batch
Kemungkinan alasan pengeluaran Kapasitas Kapasitas
Model Harga Diskon variabel relatif terhadap harga VM standar Diskon tetap relatif terhadap harga VM standar
Model kuota Tunduk pada kuota inti pada langganan Anda Tunduk pada kuota inti di akun Batch Anda
SLA Ketersediaan Tidak ada Tidak ada

Dukungan batch untuk VM Spot

Azure Batch menyediakan beberapa kemampuan yang memudahkan penggunaan dan manfaat dari VM Spot:

  • Kumpulan Batch dapat berisi VM khusus dan VM Spot. Jumlah setiap jenis VM dapat ditentukan saat kumpulan dibuat, atau diubah kapan saja untuk kumpulan yang ada, dengan menggunakan operasi pengubahan ukuran eksplisit atau dengan menggunakan skala otomatis. Pengiriman pekerjaan dan tugas tidak berubah, terlepas dari jenis VM di kumpulan tersebut. Anda juga dapat mengonfigurasi kumpulan untuk sepenuhnya menggunakan VM Spot untuk menjalankan pekerjaan semurah mungkin, tetapi meningkatkan VM khusus jika kapasitas turun di bawah ambang batas minimum, agar pekerjaan tetap berjalan.
  • Kumpulan Batch otomatis mencari jumlah target VM Spot. Jika VM mendahului atau tidak tersedia, Batch mencoba mengganti kapasitas yang hilang dan kembali ke target.
  • Ketika tugas terganggu, Batch mendeteksi dan secara otomatis mengantrekan tugas untuk dijalankan lagi.
  • VM Spot memiliki kuota vCPU terpisah yang berbeda dari kuota untuk VM khusus. Kuota untuk VM Spot lebih tinggi daripada kuota untuk VM khusus, karena VM Spot lebih murah. Untuk informasi selengkapnya, lihat Kuota dan batasan layanan Batch.

Pertimbangan dan kasus penggunaan

Banyak beban kerja Batch yang cocok untuk VM Spot. Pertimbangkan untuk menggunakan Spot VM saat pekerjaan dipecah menjadi banyak tugas paralel, atau ketika Anda memiliki banyak pekerjaan yang diskalakan dan didistribusikan di banyak VM.

Beberapa contoh kasus penggunaan pemrosesan batch yang sangat cocok untuk Spot VM adalah:

  • Pengembangan dan pengujian: Khususnya, jika solusi skala besar sedang dikembangkan, penghematan yang signifikan dapat diwujudkan. Semua jenis pengujian dapat menguntungkan, tetapi pengujian beban skala besar dan pengujian regresi adalah penggunaan yang bagus.
  • Menambahkan kapasitas sesuai permintaan: VM Spot dapat digunakan untuk melengkapi VM khusus reguler. Ketika tersedia, pekerjaan dapat menskalakan dan karenanya menyelesaikan lebih cepat dengan biaya yang lebih rendah; ketika tidak tersedia, garis besar VM khusus tetap tersedia.
  • Waktu eksekusi pekerjaan yang fleksibel: Jika ada fleksibilitas dalam pekerjaan waktu yang harus diselesaikan, maka potensi penurunan kapasitas dapat ditoleransi. Namun, dengan penambahan Spot VM, pekerjaan sering berjalan lebih cepat dan dengan biaya yang lebih rendah.

Kumpulan Batch dapat dikonfigurasi untuk menggunakan VM Spot dalam beberapa cara:

  • Kumpulan hanya dapat menggunakan Spot VM. Dalam hal ini, Batch memulihkan kapasitas yang telah ditentukan sebelumnya ketika tersedia. Konfigurasi ini adalah cara termurah untuk mengeksekusi pekerjaan.
  • Spot VM dapat digunakan dengan garis besar tetap VM khusus. Jumlah tetap VM khusus memastikan selalu ada beberapa kapasitas untuk menjaga kemajuan pekerjaan.
  • Kumpulan dapat menggunakan campuran dinamis VM khusus dan Spot, sehingga Spot VM yang lebih murah hanya digunakan saat tersedia, tetapi VM khusus dengan harga penuh meningkat ketika diperlukan. Konfigurasi ini menjaga jumlah kapasitas minimum yang tersedia untuk menjaga kemajuan pekerjaan.

Perlu diingat praktik berikut saat merencanakan penggunaan Spot VM:

  • Untuk memaksimalkan penggunaan kapasitas surplus di Azure, pekerjaan yang sesuai dapat diskalakan.
  • Terkadang, VM mungkin tidak tersedia atau didahului, yang mengakibatkan berkurangnya kapasitas untuk pekerjaan dan dapat menyebabkan gangguan tugas dan eksekusi ulang.
  • Tugas dengan waktu eksekusi yang lebih pendek cenderung bekerja paling baik dengan VM Spot. Pekerjaan dengan tugas yang lebih panjang mungkin lebih terpengaruh jika terganggu. Jika tugas jangka panjang menerapkan titik pemeriksaan untuk menyimpan kemajuan saat dijalankan, dampak ini mungkin berkurang.
  • Pekerjaan MPI jangka panjang yang menggunakan beberapa VM tidak cocok untuk Spot VM, karena satu VM yang didahului dapat menyebabkan seluruh pekerjaan harus berjalan lagi.
  • Node titik dapat ditandai sebagai tidak dapat digunakan jika aturan kelompok keamanan jaringan (NSG) tidak dikonfigurasi dengan benar.

Membuat dan mengelola kumpulan dengan Spot VM

Kumpulan Batch dapat berisi VM khusus dan Spot (juga disebut sebagai node komputasi). Anda dapat menetapkan jumlah target node komputasi untuk VM khusus dan Spot. Jumlah target simpul menentukan jumlah VM yang ingin Anda miliki di kumpulan.

Contoh berikut membuat kumpulan menggunakan komputer virtual Azure, dalam hal ini VM Linux, dengan target 5 VM khusus dan 20 Spot VM:

ImageReference imageRef = new ImageReference(
    publisher: "Canonical",
    offer: "UbuntuServer",
    sku: "20.04-LTS",
    version: "latest");

// Create the pool
VirtualMachineConfiguration virtualMachineConfiguration =
    new VirtualMachineConfiguration("batch.node.ubuntu 20.04", imageRef);

pool = batchClient.PoolOperations.CreatePool(
    poolId: "vmpool",
    targetDedicatedComputeNodes: 5,
    targetLowPriorityComputeNodes: 20,
    virtualMachineSize: "Standard_D2_v2",
    virtualMachineConfiguration: virtualMachineConfiguration);

Anda bisa mendapatkan jumlah node saat ini untuk VM khusus dan Spot:

int? numDedicated = pool1.CurrentDedicatedComputeNodes;
int? numLowPri = pool1.CurrentLowPriorityComputeNodes;

Node kumpulan memiliki properti untuk menunjukkan apakah node tersebut adalah VM khusus atau Spot:

bool? isNodeDedicated = poolNode.IsDedicated;

Spot VM kadang-kadang mungkin didahului. Ketika preemption terjadi, tugas yang berjalan pada VM simpul yang didahulukan akan diantrekan kembali dan dijalankan lagi saat kapasitas kembali.

Untuk kumpulan Konfigurasi Komputer Virtual, Batch juga melakukan perilaku berikut:

  • VM yang didahulukan telah diperbarui statusnya ke Didahulukan.
  • VM dihapus secara efektif, yang menyebabkan hilangnya semua data yang disimpan secara lokal pada VM.
  • Operasi simpul daftar pada kumpulan masih mengembalikan simpul yang didahulukan.
  • Kumpulan terus berupaya mencapai jumlah target node Spot yang tersedia. Ketika kapasitas penggantian ditemukan, simpul menyimpan ID mereka, tetapi diinisialisasi ulang, melalui status Membuat dan Memulai sebelum tersedia untuk penjadwalan tugas.
  • Jumlah pemindahan tersedia sebagai metrik di portal Microsoft Azure.

Menskalakan kumpulan yang berisi VM Spot

Seperti halnya kumpulan yang hanya terdiri dari VM khusus, dimungkinkan untuk menskalakan kumpulan yang berisi Spot VM dengan memanggil Resize metode atau dengan menggunakan skala otomatis.

Operasi pengurangan ukuran kumpulan mengambil parameter opsional kedua yang memperbarui nilai targetLowPriorityNodes:

pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);

Rumus penskalaan otomatis kumpulan mendukung VM Spot sebagai berikut:

  • Anda bisa mendapatkan atau mengatur nilai variabel $TargetLowPriorityNodesyang ditentukan layanan .
  • Anda bisa mendapatkan nilai variabel $CurrentLowPriorityNodesyang ditentukan layanan .
  • Anda bisa mendapatkan nilai variabel $PreemptedNodeCountyang ditentukan layanan . Variabel ini memberikan jumlah simpul dalam status didahulukan dan mengizinkan Anda untuk meningkatkan atau menurunkan jumlah simpul khusus, tergantung pada jumlah simpul didahului yang tidak tersedia.

Mengonfigurasi tugas dan tugas

Pekerjaan dan tugas mungkin memerlukan beberapa konfigurasi tambahan untuk simpul Spot:

  • Properti JobManagerTask pekerjaan memiliki AllowLowPriorityNode properti . Ketika properti ini benar, tugas pengelola pekerjaan dapat dijadwalkan pada node khusus atau Spot. Jika nilainya salah, tugas manajer pekerjaan dijadwalkan ke simpul khusus saja.
  • AZ_BATCH_NODE_IS_DEDICATEDVariabel lingkungan tersedia untuk aplikasi tugas sehingga dapat menentukan apakah itu berjalan di Spot atau pada simpul khusus.

Melihat metrik untuk VM Spot

Metrik baru tersedia di portal Azure untuk node Spot. Metrik ini adalah:

  • Jumlah Simpul Prioritas Rendah
  • Jumlah Inti Prioritas Rendah
  • Jumlah Simpul yang Didahului

Untuk melihat metrik ini di portal Azure:

  1. Buka akun Batch Anda di portal Microsoft Azure.
  2. Pilih Metrik dari bagian Pemantauan.
  3. Pilih metrik yang Anda inginkan dari daftar Metrik.

Batasan

  • VM spot di Batch tidak mendukung pengaturan harga maksimum dan tidak mendukung pengeluaran berbasis harga. Ini hanya dapat dikeluarkan karena alasan kapasitas.
  • VM Spot hanya tersedia untuk kumpulan Konfigurasi Mesin Virtual dan bukan untuk kumpulan Konfigurasi Layanan Cloud, yang tidak digunakan lagi.
  • Spot VM tidak tersedia untuk beberapa cloud, ukuran VM, dan jenis penawaran langganan. Lihat selengkapnya tentang batasan Spot VM.
  • Saat ini, disk OS ephemeral tidak didukung dengan Spot VM karena kebijakan pengeluaran yang dikelola layanan dari Stop-Deallocate.

Langkah berikutnya