Menggunakan Spot VM dengan 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.
Kerugian dari penggunaan VM Spot adalah bahwa VM tersebut mungkin tidak selalu tersedia untuk dialokasikan, atau dapat didahulukan 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 detail harga, lihat Harga Batch.
Perbedaan antara VM Spot dan VM berprioritas rendah
Batch menawarkan dua jenis VM pra-emptible 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 node 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.
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 VM Spot | Semua wilayah kecuali Microsoft Azure Tiongkok 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 ketika kumpulan dibuat, atau diubah kapan saja untuk kumpulan yang ada, menggunakan operasi pengubahan ukuran eksplisit atau 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 menggunakannya ketika pekerjaan dibagi menjadi banyak tugas paralel, atau ketika Anda memiliki banyak pekerjaan yang diperluas skalanya dan didistribusikan di banyak VM.
Beberapa contoh kasus penggunaan pemrosesan batch yang cocok untuk menggunakan VM Spot 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 pekerjaan Spot VM 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 antara VM khusus dan Spot, sehingga VM Spot yang lebih murah hanya digunakan jika tersedia, tetapi VM khusus dengan harga penuh ditingkatkan jika 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 diperluas skalanya.
- Kadang VM mungkin tidak tersedia atau didahulukan, yang menghasilkan pengurangan 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 terdampak jika terganggu. Jika tugas yang berjalan lama menerapkan titik pemeriksaan untuk menyimpan kemajuan saat dijalankan, dampak ini dapat dikurangi.
- Pekerjaan MPI jangka panjang yang menggunakan beberapa VM tidak cocok untuk menggunakan 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.
Misalnya, untuk membuat kumpulan menggunakan mesin virtual Azure (dalam hal ini VM Linux) dengan target 5 VM khusus dan 20 VM Spot:
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;
VM kadang dapat didahulukan. Ketika preemption terjadi, tugas yang berjalan pada VM simpul yang didahulukan akan diantrekan kembali dan dijalankan lagi.
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 daftar simpul pada kumpulan masih akan menghasilkan simpul yang telah 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 metode Mengubah Ukuran atau dengan menggunakan skala otomatis.
Operasi pengubah 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 yang ditentukan layanan $TargetLowPriorityNodes.
- Anda bisa mendapatkan nilai variabel yang ditentukan layanan $CurrentLowPriorityNodes.
- Anda bisa mendapatkan nilai variabel yang ditentukan layanan $PreemptedNodeCount. 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 dari pekerjaan memiliki properti AllowLowPriorityNode. 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_DEDICATED
Variabel 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 Microsoft Azure
- Buka akun Batch Anda di portal Microsoft Azure.
- Pilih Metrik dari bagian Pemantauan.
- Pilih metrik yang Anda inginkan dari daftar Metrik.
Batasan
- Spot VM 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.
- Saat ini, disk OS Ephemeral tidak didukung dengan Spot VM karena kebijakan pengeluaran yang dikelola layanan dari Stop-Deallocate.
Langkah berikutnya
- Pelajari tentang Alur kerja layanan Batch dan sumber daya utama seperti kumpulan, simpul, pekerjaan, dan tugas.
- Pelajari tentang API Batch dan alat yang tersedia untuk membuat solusi Batch.
- Mulai rencanakan perpindahan dari VM berprioritas rendah ke VM Spot. Jika Anda menggunakan VM berprioritas rendah dengan kumpulan Konfigurasi Cloud Services (yang tidak digunakan lagi), rencanakan untuk bermigrasi ke kumpulan konfigurasi Komputer Virtual sebagai gantinya.