Share via


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, zaman alan 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, işin ilerleme durumunu kullanıcıya daha kolay görüntüleyebilir veya işi etkileyebilecek beklenmeyen gecikmeleri veya hataları algılayabilirsiniz.

  • Liste Havuzu Düğüm Sayıları , çeşitli durumlardaki her havuzdaki ayrılmış ve Spot işlem düğümlerinin sayısını alır: oluşturma, boşta kalma, çevrimdışı, önyüklenmiş, 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 kaynaklarınız olup olmadığını belirleyebilir ve havuzlarınızla ilgili olası sorunları belirleyebilirsiniz.

Bazen bu işlemler tarafından döndürülen sayıların güncel olmayabileceğini unutmayın. 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ı

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

  • Etkin: Kuyruğa alınmış ve çalıştırılabilen ancak şu anda bir işlem düğümüne atanmamış bir görev. Görev, henüz tamamlanmamış bir üst göreve bağımlıysa da active görevdir.
  • Çalışıyor: İşlem düğümüne atanmış ancak henüz tamamlanmamış bir görev. Görev, Bir görev hakkında bilgi alma işlemiyle gösterildiği gibi, durumu preparing veya runningolduğunda olarak running sayılır.
  • Tamamlandı: Başarıyla tamamlandığı veya başarısız şekilde tamamlandığı 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 olduğu görevdir success. Batch, executionInfo özelliğinin TaskExecutionResult özelliğini denetleyerek bir 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 olduğu bir görev.failure

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

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

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

Bir işin görev sayıları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. Ayrılmış düğümler ve her havuzdaki Spot düğümler için ayrı toplama sayıları sağlanır.

  • Oluşturma: Henüz havuza katılmaya başlamamış, Azure tarafından ayrılmış bir VM.
  • Boşta: Şu anda bir görev çalıştırmayan kullanılabilir bir işlem düğümü.
  • LeavingPool: Kullanıcı açıkça kaldırdığı veya havuzun yeniden boyutlandırıldığı veya otomatik ölçeklendiği için havuzdan ayrılan bir düğüm.
  • Çevrimdışı: Batch'in yeni görevleri zamanlamak için kullanamadığı bir düğüm.
  • Preempted: Azure VM'yi geri kazandığından 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ılıyor olan bir düğüm.
  • Yeniden görüntüleniyor: İşletim sisteminin yeniden yüklendiği bir düğüm.
  • Çalışıyor : Bir veya daha fazla görev (başlangıç görevi dışında) çalıştıran bir düğüm.
  • Başlangıç: Batch hizmetinin başlatıldığı düğüm.
  • StartTaskFailed: Başlangıç görevinin başarısız olduğu ve tüm yeniden denemeleri tükettiği ve başlangıç görevinde ayarlandığı waitForSuccess bir düğüm. Düğüm, görevleri çalıştırmak için kullanılamaz.
  • 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ışmaya başladığı ancak waitForSuccess ayarlandığı ve başlangıç görevinin 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:

foreach (var nodeCounts in batchClient.PoolOperations.ListPoolNodeCounts())
{
    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.

foreach (var nodeCounts in batchClient.PoolOperations.ListPoolNodeCounts(new ODATADetailLevel(filterClause: "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