Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure Batch menawarkan mesin virtual Spot (VMs) untuk mengurangi biaya beban kerja Batch. Spot VM memungkinkan jenis pekerjaan Batch baru dengan memungkinkan penggunaan daya komputasi dalam jumlah besar dengan biaya rendah.
Spot VM memanfaatkan kapasitas surplus di Azure. Ketika Anda menentukan Spot VM di pool Anda, Azure Batch dapat menggunakan surplus ini, jika tersedia.
Kerugian menggunakan Spot VMs adalah bahwa VMs tersebut mungkin tidak selalu tersedia, atau dapat dihentikan sewaktu-waktu, bergantung pada kapasitas yang tersedia. For this reason, Spot VMs are most suitable for batch and asynchronous processing workloads where the job completion time is flexible and the work is distributed across many VMs.
Spot VMs are offered at a reduced price compared with dedicated VMs. To learn more about pricing, see Batch pricing.
Perbedaan antara Spot dan VM prioritas rendah
Batch menawarkan dua jenis VM preemptible berbiaya rendah.
- Spot VMs, penawaran modern yang luas di Azure yang juga tersedia sebagai VM instan tunggal atau Kumpulan Skala Mesin Virtual.
- VM Prioritas Rendah, sebuah penawaran lama yang hanya tersedia melalui Azure Batch.
The type of node you get depends on your Batch account's pool allocation mode, which can be set during account creation. Akun batch yang menggunakan mode alokasi kumpulan langganan pengguna selalu mendapatkan VM Spot. Akun Batch yang menggunakan mode alokasi kelompok Batch managed selalu mendapatkan VM prioritas rendah.
Peringatan
Mesin Virtual prioritas rendah akan dihentikan setelah 30 September 2025. Silakan bermigrasi ke Spot VMs di Batch sebelum saat itu.
Azure Spot VMs and Batch low-priority VMs are similar but have a few differences in behavior.
Spot VMs | Mesin Virtual Prioritas Rendah | |
---|---|---|
Akun Batch yang didukung | Akun Batch Berlangganan Pengguna | Akun Batch yang Dikelola Batch |
Konfigurasi pool Batch yang Didukung | Konfigurasi Mesin Virtual | Virtual Machine Configuration dan Cloud Service Configuration (tidak lagi digunakan) |
Wilayah yang Tersedia | Semua wilayah yang mendukung Spot VMs | Semua wilayah kecuali Microsoft Azure yang dioperasikan oleh 21Vianet |
Customer eligibility | Tidak tersedia untuk beberapa jenis penawaran langganan. Lihat lebih lanjut tentang Spot limitations. | Tersedia untuk semua pelanggan Batch. |
Possible reasons for eviction | Capacity | Kapasitas |
Pricing Model | Diskon variabel relatif terhadap harga VM standar | Diskon tetap relatif terhadap harga standar VM |
Quota model | Tunduk pada kuota inti di langganan Anda | Tunduk pada kuota inti pada akun Batch Anda |
Availability SLA | tidak ada | None |
Dukungan batch untuk Spot VMs
Azure Batch provides several capabilities that make it easy to consume and benefit from Spot VMs:
- Batch pools can contain both dedicated VMs and Spot VMs. The number of each type of VM can be specified when a pool is created, or changed at any time for an existing pool, by using the explicit resize operation or by using autoscale. Job and task submission can remain unchanged, regardless of the VM types in the pool. You can also configure a pool to completely use Spot VMs to run jobs as cheaply as possible, but spin up dedicated VMs if the capacity drops below a minimum threshold, to keep jobs running.
- Batch pools secara otomatis mencari jumlah target dari Spot VM. Jika VM di-preempt atau tidak tersedia, Batch akan berusaha mengganti kapasitas yang hilang dan kembali ke target.
- Ketika tugas terhenti, Batch mendeteksi dan secara otomatis memasukkan kembali tugas-tugas untuk dijalankan ulang.
- VM Spot memiliki kuota vCPU terpisah yang berbeda dari VM khusus. Kuota untuk Spot VM lebih tinggi daripada kuota untuk VM khusus, karena Spot VM lebih murah. For more information, see Batch service quotas and limits.
Considerations and use cases
Many Batch workloads are a good fit for Spot VMs. Pertimbangkan untuk menggunakan Spot VMs ketika pekerjaan dipecah menjadi banyak tugas paralel, atau ketika Anda memiliki banyak pekerjaan yang di-scale out dan didistribusikan di banyak VM.
Beberapa contoh kasus penggunaan pemrosesan batch yang cocok untuk Spot VMs adalah:
- Pengembangan dan pengujian: Khususnya, jika solusi dalam skala besar sedang dikembangkan, penghematan signifikan dapat terealisasi. All types of testing can benefit, but large-scale load testing and regression testing are great uses.
- Supplementing on-demand capacity: Spot VMs can be used to supplement regular dedicated VMs. When available, jobs can scale and therefore complete quicker for lower cost; when not available, the baseline of dedicated VMs remains available.
- Waktu pelaksanaan pekerjaan yang fleksibel: Jika ada fleksibilitas dalam waktu penyelesaian pekerjaan, maka penurunan kapasitas yang potensial bisa ditoleransi. Namun, dengan adanya penambahan VM Spot, pekerjaan sering kali berjalan lebih cepat dan dengan biaya lebih rendah.
Kumpulan batch dapat dikonfigurasi untuk menggunakan Spot VM dalam beberapa cara:
- Sebuah kolam hanya dapat menggunakan Spot VMs. In this case, Batch recovers any preempted capacity when available. This configuration is the cheapest way to execute jobs.
- Spot VMs can be used with a fixed baseline of dedicated VMs. Jumlah tetap VM khusus memastikan selalu ada kapasitas untuk menjaga pekerjaan tetap berjalan.
- Sebuah pool dapat menggunakan kombinasi dinamis dari VM khusus dan Spot, sehingga VM Spot yang lebih murah hanya digunakan saat tersedia, tetapi VM khusus dengan harga penuh bisa ditingkatkan saat diperlukan. Konfigurasi ini menjaga agar sejumlah kapasitas minimum tetap tersedia untuk memastikan pekerjaan terus berjalan.
Ingatlah praktik berikut saat merencanakan penggunaan Spot VMs Anda.
- Untuk memaksimalkan penggunaan kapasitas surplus di Azure, pekerjaan yang sesuai dapat diperluas.
- Sesekali, mesin virtual (VM) mungkin tidak tersedia atau diambil alih, yang mengakibatkan berkurangnya kapasitas untuk pekerjaan dan dapat menyebabkan gangguan tugas serta pengulangan.
- Tugas dengan waktu eksekusi yang lebih pendek cenderung bekerja paling baik dengan VM Spot. Pekerjaan dengan tugas yang lebih lama mungkin lebih terpengaruh jika terganggu. If long-running tasks implement checkpointing to save progress as they execute, this impact might be reduced.
- Pekerjaan MPI jangka panjang yang menggunakan banyak VM tidak cocok untuk VM Spot, karena satu VM yang terhenti dapat menyebabkan seluruh pekerjaan harus dijalankan kembali.
- Spot nodes may be marked as unusable if network security group (NSG) rules are configured incorrectly.
Buat dan kelola pool dengan Spot VM
Pool Batch dapat berisi baik VM khusus maupun VM Spot (juga disebut sebagai node komputasi). You can set the target number of compute nodes for both dedicated and Spot VMs. Jumlah target node menentukan jumlah VM yang ingin Anda miliki dalam kumpulan.
Contoh berikut membuat kumpulan menggunakan mesin 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 dapat memperoleh jumlah node saat ini untuk VM dedicated dan Spot.
int? numDedicated = pool1.CurrentDedicatedComputeNodes;
int? numLowPri = pool1.CurrentLowPriorityComputeNodes;
Node pool memiliki properti untuk menunjukkan apakah node tersebut adalah VM dedicated atau Spot.
bool? isNodeDedicated = poolNode.IsDedicated;
Mesin virtual Spot mungkin sesekali diambil alih. Ketika preemption terjadi, tugas-tugas yang sedang berjalan pada VM node yang di-preempt akan dimasukkan kembali dalam antrean dan dijalankan ulang ketika kapasitas kembali tersedia.
Untuk pool Konfigurasi Mesin Virtual, Batch juga melakukan perilaku berikut:
- Mesin virtual yang dikuasai memiliki status mereka diperbarui ke Diambil Alih.
- Mesin virtual (VM) akan dihapus secara efektif, yang menyebabkan hilangnya data yang tersimpan secara lokal pada VM.
- Operasi daftar node pada kumpulan masih mengembalikan node yang diambil alih.
- The pool continually attempts to reach the target number of Spot nodes available. When replacement capacity is found, the nodes keep their IDs, but are reinitialized, going through Creating and Starting states before they're available for task scheduling.
- Preemption counts are available as a metric in the Azure portal.
Scale pools containing Spot VMs
As with pools solely consisting of dedicated VMs, it's possible to scale a pool containing Spot VMs by calling the Resize
method or by using autoscale.
Operasi pengubahan ukuran kolam mengambil parameter opsional kedua yang memperbarui nilai targetLowPriorityNodes
.
pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);
Formula autoscale kolam mendukung Spot VMs sebagai berikut:
- Anda dapat mengambil atau menetapkan nilai dari variabel yang ditentukan oleh layanan
$TargetLowPriorityNodes
. - Anda dapat mengambil nilai dari variabel yang ditentukan layanan
$CurrentLowPriorityNodes
. - Anda dapat memperoleh nilai dari variabel yang ditentukan oleh layanan
$PreemptedNodeCount
. Variabel ini mengembalikan jumlah node dalam keadaan pra-emi dan memungkinkan Anda untuk meningkatkan atau mengurangi jumlah node khusus, tergantung pada jumlah node pra-emi yang tidak tersedia.
Konfigurasikan pekerjaan dan tugas
Pekerjaan dan tugas mungkin memerlukan beberapa konfigurasi tambahan untuk node Spot.
- Properti
JobManagerTask
dari sebuah pekerjaan memiliki propertiAllowLowPriorityNode
. Ketika properti ini benar, tugas manajer pekerjaan dapat dijadwalkan pada node berdedikasi atau node Spot. Jika salah, tugas manajer pekerjaan dijadwalkan hanya ke node khusus. - Variabel lingkungan tersedia untuk aplikasi tugas sehingga dapat menentukan apakah sedang berjalan di Spot atau di node khusus.
Lihat metrik untuk Spot VM
Metode-metode baru tersedia di portal Azure untuk node Spot. Metrik-metrik ini adalah:
- Jumlah Node Prioritas Rendah
- Hitungan Inti Prioritas Rendah
- Jumlah Node yang Didahului
Untuk melihat metrik ini di portal Azure:
- Arahkan ke akun Batch Anda di portal Azure.
- Pilih Metrics dari bagian Monitoring.
- Pilih metrik yang Anda inginkan dari daftar Metric.
Limitations
- VM Spot di Batch tidak mendukung pengaturan harga maksimum dan tidak mendukung penggusuran berdasarkan harga. Mereka hanya dapat diusir karena alasan kapasitas.
- VM Spot hanya tersedia untuk pool Konfigurasi Mesin Virtual dan bukan untuk pool Konfigurasi Layanan Cloud, yang sudah usang.
- Spot VMs aren't available for some clouds, VM sizes, and subscription offer types. See more about Spot VM limitations.
- Saat ini, ephemeral OS disks tidak didukung dengan Spot VMs karena kebijakan pemindahan yang dikelola layanan Stop-Deallocate.
Langkah selanjutnya
- Pelajari tentang alur kerja layanan Batch dan sumber daya utama seperti pool, node, pekerjaan, dan tugas.
- Pelajari tentang API dan alat Batch yang tersedia untuk membangun solusi Batch.
- Mulailah merencanakan pemindahan dari VM dengan prioritas rendah ke VM Spot. Jika Anda menggunakan VM prioritas rendah dengan pool Konfigurasi Layanan Cloud (yang sudah ditinggalkan), rencanakan untuk bermigrasi ke pool Konfigurasi Mesin Virtual sebagai gantinya.