Görevleri ve düğümleri duruma göre sayarak Batch çözümlerini izleme

Büyük ölçekli Azure Batch çözümlerini izlemek ve yönetmek için çeşitli durumlardaki kaynak sayısını belirlemeniz gerekebilir. Azure Batch, Batch görevleri ve işlem düğümleri için sayıları almak için verimli işlemler sağlar. Büyük görev veya düğüm koleksiyonları hakkında ayrıntılı bilgi döndüren ve potansiyel olarak zaman alıcı olabilen liste sorguları yerine bu işlemleri kullanabilirsiniz.

  • Görev Sayılarını Alma , bir işteki etkin, çalışan ve tamamlanan görevlerin ve başarılı veya başarısız görevlerin toplam sayısını alır. Her durumdaki görevleri sayarak, kullanıcının iş ilerleme durumunu kolayca görüntüleyebilir veya işi etkileyebilecek beklenmeyen gecikmeleri veya hataları algılayabilirsiniz.

  • Liste Havuzu Düğüm Sayıları , her havuzdaki çeşitli durumlarda bulunan ayrılmış ve Spot işlem düğümlerinin sayısını alır: oluşturma, boşta kalma, çevrimdışı, önceden damgalanmış, yeniden başlatma, yeniden boyutlandırma, başlatma ve diğerleri. Her durumdaki düğümleri sayarak, işlerinizi çalıştırmak için yeterli işlem kaynağınızın ne zaman olduğunu belirleyebilir ve havuzlarınızla ilgili olası sorunları belirleyebilirsiniz.

Bazen, bu işlemler tarafından döndürülen sayılar güncel olmayabilir. Sayımın doğru olduğundan emin olmanız gerekiyorsa, bu kaynakları saymak için bir liste sorgusu kullanın. Liste sorguları, uygulamalar gibi diğer Batch kaynakları hakkında da bilgi edinmenizi sağlar. Liste sorgularına filtre uygulama hakkında daha fazla bilgi için bkz . Batch kaynaklarını verimli bir şekilde listelemek için sorgu oluşturma.

Görev durumu sayıları

Get Görev Sayıları işlemi, görevleri aşağıdaki durumlara göre sayar:

  • Etkin: Kuyruğa alınmış ve çalışmaya hazır ancak şu anda herhangi bir işlem düğümüne atanmamış bir görev. Görev, henüz tamamlanmamış active da görevdir.
  • Çalışıyor: Hesaplama düğümüne atanmış ancak henüz tamamlanmamış bir görev. Görev, bir görev running gösterildiği gibi veya preparingrunning olduğunda olarak Get sayılır.
  • Tamamlandı: Başarıyla tamamlandığı veya başarısız olduğu ve yeniden deneme sınırını da tükettiği için artık çalıştırılmaya uygun olmayan bir görev.
  • Başarılı: Görev yürütme sonucunun success olduğu bir görev. Batch, TaskExecutionResult özelliğinin özelliğini denetleyerek görevin başarılı mı yoksa başarısız mı olduğunu belirler.
  • Başarısız: Görev yürütme sonucunun failure olduğu bir görev.

Aşağıdaki .NET kod örneğinde, duruma göre görev sayılarının nasıl alındığı gösterilmektedir.

BatchTaskCountsResult taskCounts = await batchClient.GetJobTaskCountsAsync("job-1");

Console.WriteLine("Task count in active state: {0}", taskCounts.TaskCounts.Active);
Console.WriteLine("Task count in preparing or running state: {0}", taskCounts.TaskCounts.Running);
Console.WriteLine("Task count in completed state: {0}", taskCounts.TaskCounts.Completed);
Console.WriteLine("Succeeded task count: {0}", taskCounts.TaskCounts.Succeeded);
Console.WriteLine("Failed task count: {0}", taskCounts.TaskCounts.Failed);

Bir işin görev sayısını almak için REST ve desteklenen diğer diller için benzer bir desen kullanabilirsiniz.

Düğüm durumu sayıları

Liste Havuzu Düğüm Sayısı işlemi, işlem düğümlerini her havuzdaki aşağıdaki durumlara göre sayar. Her bir havuzda ayrılmış düğümler ve Spot düğümler için ayrı toplam sayılar sağlanır.

  • Oluşturma: Henüz havuza katılmaya başlamamış, Azure tarafından ayrılmış bir VM.
  • Boşta: Kullanılabilir olan ve şu anda hiçbir görevi çalıştırmayan bir işlem düğümü.
  • LeavingPool: Kullanıcı tarafından açıkça kaldırıldığı veya havuzun yeniden boyutlandırıldığı veya otomatik olarak azaltıldığı için havuzdan ayrılan bir düğüm.
  • Çevrimdışı: Batch'in yeni görevleri zamanlamak için kullanamadığı bir düğüm.
  • Önceden damgalanmış: Azure VM'yi geri topladığı için havuzdan kaldırılan bir Spot düğümü. preempted Yeni Spot VM kapasitesi kullanılabilir olduğunda bir düğüm yeniden başlatılabilir.
  • Yeniden başlatma: Yeniden başlatılan bir düğüm.
  • Yeniden İmajlama: İşletim sisteminin yeniden yüklendiği bir düğüm.
  • Çalışıyor : Bir veya daha fazla görev (başlangıç görevi dışında) yürüten bir düğüm.
  • Başlangıç: Batch hizmetinin başlatıldığı düğüm.
  • StartTaskFailed: Tüm yeniden denemelerin ardından başlangıç görevinin başarısız olduğu ve waitForSuccess etkinleştirildiği düğüm. Bu düğüm görevleri çalıştıramaz.
  • Bilinmiyor: Batch hizmetiyle iletişimini kaybeden ve durumu bilinmeyen bir düğüm.
  • Kullanılamaz: Hatalar nedeniyle görev yürütme için kullanılamayan bir düğüm.
  • WaitingForStartTask: Başlangıç görevinin çalışmakta olduğu, ancak waitForSuccess etkin olduğu ve henüz tamamlanmadığı bir düğüm.

Aşağıdaki C# kod parçacığı, geçerli hesaptaki tüm havuzlar için düğüm sayılarının nasıl listelenmiş olduğunu gösterir:

await foreach (BatchPoolNodeCounts nodeCounts in batchClient.GetPoolNodeCountsAsync())
{
    Console.WriteLine("Pool Id: {0}", nodeCounts.PoolId);

    Console.WriteLine("Total dedicated node count: {0}", nodeCounts.Dedicated.Total);

    // Get dedicated node counts in Idle and Offline states; you can get additional states.
    Console.WriteLine("Dedicated node count in Idle state: {0}", nodeCounts.Dedicated.Idle);
    Console.WriteLine("Dedicated node count in Offline state: {0}", nodeCounts.Dedicated.Offline);

    Console.WriteLine("Total Spot node count: {0}", nodeCounts.LowPriority.Total);

    // Get Spot node counts in Running and Preempted states; you can get additional states.
    Console.WriteLine("Spot node count in Running state: {0}", nodeCounts.LowPriority.Running);
    Console.WriteLine("Spot node count in Preempted state: {0}", nodeCounts.LowPriority.Preempted);
}

Aşağıdaki C# kod parçacığı, geçerli hesaptaki belirli bir havuz için düğüm sayılarının nasıl listelenmiş olduğunu gösterir.

await foreach (BatchPoolNodeCounts nodeCounts in batchClient.GetPoolNodeCountsAsync(
    filter: "poolId eq 'testpool'"))
{
    Console.WriteLine("Pool Id: {0}", nodeCounts.PoolId);

    Console.WriteLine("Total dedicated node count: {0}", nodeCounts.Dedicated.Total);

    // Get dedicated node counts in Idle and Offline states; you can get additional states.
    Console.WriteLine("Dedicated node count in Idle state: {0}", nodeCounts.Dedicated.Idle);
    Console.WriteLine("Dedicated node count in Offline state: {0}", nodeCounts.Dedicated.Offline);

    Console.WriteLine("Total Spot node count: {0}", nodeCounts.LowPriority.Total);

    // Get Spot node counts in Running and Preempted states; you can get additional states.
    Console.WriteLine("Spot node count in Running state: {0}", nodeCounts.LowPriority.Running);
    Console.WriteLine("Spot node count in Preempted state: {0}", nodeCounts.LowPriority.Preempted);
}

Havuzların düğüm sayılarını almak için REST ve desteklenen diğer diller için benzer bir desen kullanabilirsiniz.

Sonraki adımlar