Aracılığıyla paylaş


Azure Batch havuzu ve düğüm hataları

Bazı Azure Batch havuzu oluşturma ve yönetim işlemleri hemen gerçekleşir. Hatalar genellikle API' den, komut satırından veya kullanıcı arabiriminden hemen döndüreceği için bu işlemler için hataları algılamak basittir. Ancak bazı işlemler zaman uyumsuz olur, arka planda çalışır ve tamamlanması birkaç dakika sürer. Bu makalede, havuzlar ve düğümler için arka plan işlemlerinde oluşabilecek hataları algılamanın ve önlemenin yolları açıklanmaktadır.

Uygulamalarınızı, özellikle zaman uyumsuz işlemler için kapsamlı hata denetimi uygulayacak şekilde ayarladığınızdan emin olun. Kapsamlı hata denetimi sorunları hemen belirlemenize ve tanılamanıza yardımcı olabilir.

Havuz hataları

Havuz hataları yeniden boyutlandırma zaman aşımı veya hatası, otomatik ölçeklendirme hatası veya havuz silme hatasıyla ilgili olabilir.

Zaman aşımını veya hatayı yeniden boyutlandırma

Yeni bir havuz oluşturduğunuzda veya var olan bir havuzu yeniden boyutlandırdığınızda, hedef düğüm sayısını belirtirsiniz. Oluşturma veya yeniden boyutlandırma işlemi hemen tamamlanır, ancak yeni düğümlerin gerçek ayrılması veya mevcut düğümlerin kaldırılması birkaç dakika sürebilir. Yeniden boyutlandırma zaman aşımını Havuz - Ekle veya Havuz - Yeniden Boyutlandırma API'leri bölümünde belirtebilirsiniz. Batch yeniden boyutlandırma zaman aşımı süresi boyunca hedef düğüm sayısını ayıramazsa havuz kararlı bir duruma geçer ve yeniden boyutlandırma hatalarını raporlar.

resizeError özelliği, en son değerlendirme için oluşan hataları listeler.

Yeniden boyutlandırma hatalarının yaygın nedenleri şunlardır:

  • Zaman aşımını çok kısa yeniden boyutlandır. Genellikle, 15 dakikalık varsayılan zaman aşımı havuz düğümlerini ayırmak veya kaldırmak için yeterlidir. bir Azure Market görüntüsünden 1.000'den fazla düğüm veya özel bir sanal makine (VM) görüntüsünden 300'den fazla düğüm gibi çok sayıda düğüm ayırıyorsanız, yeniden boyutlandırma zaman aşımını 30 dakikaya ayarlayabilirsiniz.

  • Çekirdek kotası yetersiz. Batch hesabı, tüm havuzlar arasında ayırabileceği çekirdek sayısıyla sınırlıdır ve bu kotaya ulaştığında düğüm ayırmayı durdurur. Batch'in daha fazla düğüm ayırabilmesi için çekirdek kotasını artırabilirsiniz. Daha fazla bilgi için bkz . Batch hizmeti kotaları ve sınırları.

  • Bir havuz sanal ağda olduğunda alt ağ IP'leri yetersiz. Bir sanal ağ alt ağı, istenen her havuz düğümüne ayırmak için yeterli IP adresine sahip olmalıdır. Aksi takdirde düğümler oluşturulamaz. Daha fazla bilgi için bkz . Sanal ağda Azure Batch havuzu oluşturma.

  • Bir havuz sanal ağda olduğunda yetersiz kaynak. Sanal ağda havuz oluşturduğunuzda Batch hesabıyla aynı abonelikte yük dengeleyiciler, genel IP'ler ve ağ güvenlik grupları (NSG) gibi kaynaklar oluşturabilirsiniz. Abonelik kotalarının bu kaynaklar için yeterli olduğundan emin olun.

  • Özel VM görüntülerine sahip büyük havuzlar. Özel VM görüntülerini kullanan büyük havuzların ayrılması daha uzun sürebilir ve zaman aşımları yeniden boyutlandırılabilir. Sınırlar ve yapılandırmayla ilgili öneriler için bkz . Azure İşlem Galerisi ile havuz oluşturma.

Otomatik ölçeklendirme hataları

Azure Batch'i bir havuzdaki düğüm sayısını otomatik olarak ölçeklendirecek şekilde ayarlayabilir ve havuz için otomatik ölçeklendirme formülünün parametrelerini tanımlayabilirsiniz. Batch hizmeti daha sonra formülü kullanarak havuzdaki düğüm sayısını düzenli aralıklarla değerlendirir ve yeni hedef numaraları ayarlar. Daha fazla bilgi için bkz . Batch havuzunda işlem düğümlerini ölçeklendirmek için otomatik formül oluşturma.

Otomatik ölçeklendirmeyi kullandığınızda aşağıdaki sorunlar oluşabilir:

  • Otomatik ölçeklendirme değerlendirmesi başarısız oluyor.
  • Sonuçta elde edilen yeniden boyutlandırma işlemi başarısız olur ve zaman aşımına neden olur.
  • Otomatik ölçeklendirme formülüyle ilgili bir sorun yanlış düğüm hedef değerlerine yol açar. Yeniden boyutlandırma işe yarayabilir veya zaman aşımına neden olabilir.

Son otomatik ölçeklendirme değerlendirmesi hakkında bilgi almak için autoScaleRun özelliğini kullanın. Bu özellik değerlendirme süresini, değerleri ve sonuçları ve performans hatalarını bildirir.

Havuz yeniden boyutlandırma tamamlandı olayı tüm değerlendirmelerle ilgili bilgileri yakalar.

Havuz silme hataları

Düğüm içeren bir havuzu silmek için Batch önce düğümleri siler ve bu işlemin tamamlanması birkaç dakika sürebilir. Batch daha sonra havuz nesnesinin kendisini siler.

Batch, silme işlemi sırasında poolState'i olarak deleting ayarlar. Çağıran uygulama ve stateTransitionTime özelliklerini kullanarak state havuz silme işleminin çok uzun sürdüğünü algılayabilir.

Havuz silme işlemi beklenenden uzun sürüyorsa Batch, havuz başarıyla silinene kadar düzenli aralıklarla yeniden denenir. Bazı durumlarda gecikme, Azure hizmet kesintisi veya diğer geçici sorunlara neden olur. Havuz silme işleminin başarılı olmasını engelleyen diğer faktörler, sorunu düzeltmek için eylem gerçekleştirmenizi gerektirebilir. Bu faktörler aşağıdaki sorunları içerebilir:

  • Kaynak kilitleri Batch tarafından oluşturulan kaynaklara veya Batch'in kullandığı ağ kaynaklarına yerleştirilebilir.

  • Oluşturduğunuz kaynaklar Batch tarafından oluşturulan bir kaynağa bağlı olabilir. Örneğin, sanal ağda havuz oluşturursanız Batch bir NSG, genel IP adresi ve yük dengeleyici oluşturur. Bu kaynakları havuzun dışında kullanıyorsanız havuzu silemezsiniz.

  • Kaynak sağlayıcısının Microsoft.Batch kaydı havuzunuzu içeren abonelikten kaldırılmış olabilir.

  • Kullanıcı aboneliği modu Batch hesapları için artık Microsoft Azure Batch havuzunuzu içeren abonelikte Katkıda Bulunan veya Sahip rolü olmayabilir. Daha fazla bilgi için bkz . Batch'in aboneliğe erişmesine izin verme.

Düğüm hataları

Batch bir havuzdaki düğümleri başarıyla ayırsa bile, çeşitli sorunlar bazı düğümlerin iyi durumda olmamasına ve görevleri çalıştıramamasına neden olabilir. Bu düğümler hala ücrete tabi olduğundan, kullanamamanıza neden olan düğümler için ödeme yapmaktan kaçınmak için sorunları algılamak önemlidir. Yaygın düğüm hataları hakkında bilgi edinmek ve geçerli jobState değerini bilmek sorun giderme için yararlıdır.

Görev hatalarını başlatma

Havuz için isteğe bağlı startTask belirtebilirsiniz. Tüm görevlerde olduğu gibi, başlangıç görevi bir komut satırı kullanır ve kaynak dosyalarını depolama alanından indirebilir. Başlangıç görevi, düğüm başlatıldığında her düğüm için çalışır. özelliği, Batch'in waitForSuccess bir düğüme görev zamanlamadan önce başlangıç görevinin başarıyla tamamlanmasını bekleyip beklemediğini belirtir. Düğümü başarılı başlangıç görevi tamamlanmasını bekleyecek şekilde yapılandırdığınızda, ancak başlangıç görevi başarısız olursa, düğüm kullanılamaz ancak yine de ücret uygulanır.

En üst düzey startTaskInformation düğümü özelliğinin taskExecutionResult ve taskFailureInformation özelliklerini kullanarak başlangıç görevi hatalarını algılayabilirsiniz.

Başarısız bir başlangıç görevi, Batch'in computeNodeState waitForSuccess starttaskfailed değerini olarak ayarlamasına trueda neden olur.

Herhangi bir görevde olduğu gibi, başlangıç görevi hatasının birçok nedeni olabilir. Sorun gidermek için stdout, stderr ve göreve özgü diğer günlük dosyalarını denetleyin.

Başlangıç görevi, örneğin düğüm yeniden oluşturulduğunda veya yeniden başlatıldığında aynı düğümde birden çok kez çalışabildiğinden, başlangıç görevleri yeniden yürütülmelidir. Nadir durumlarda, bir olaydan sonra bir başlatma görevi çalıştırıldığında düğüm yeniden başlatma işlemine neden olur, bir işletim sistemi (OS) veya kısa ömürlü disk yeniden kullanılırken diğeri çalışmaz. Batch başlangıç görevleri ve tüm Batch görevleri kısa ömürlü diskten çalıştırıldığından, bu durum genellikle bir sorun değildir. Ancak, başlangıç görevinin işletim sistemi diskine bir uygulama yüklediği ve diğer verileri kısa ömürlü diskte tuttuğu durumlarda eşitleme sorunları olabilir. Her iki diski de kullanıyorsanız uygulamanızı uygun şekilde koruyun.

Uygulama paketi indirme hatası

Havuz için bir veya daha fazla uygulama paketi belirtebilirsiniz. Batch, belirtilen paket dosyalarını her düğüme indirir ve düğüm başlatıldıktan sonra ancak görevleri zamanlamadan önce dosyaların sıkıştırmasını açar. Uygulamaları farklı bir konuma kopyalamak veya kurulumu çalıştırmak gibi uygulama paketleriyle bir başlangıç görevi komutu kullanmak yaygın bir durumdur.

Uygulama paketi indirilemez ve sıkıştırmasını kaldırılamazsa computeNodeError özelliği hatayı bildirir ve düğüm durumunu olarak unusableayarlar.

Kapsayıcı indirme hatası

Havuzda bir veya daha fazla kapsayıcı başvurusu belirtebilirsiniz. Batch, belirtilen kapsayıcıları her düğüme indirir. Kapsayıcı indirilemezse computeNodeError özelliği hatayı bildirir ve düğüm durumunu olarak unusableayarlar.

Düğüm işletim sistemi güncelleştirmeleri

Windows havuzları için varsayılan enableAutomaticUpdates olarak olarak ayarlanır true . Otomatik güncelleştirmelere izin verme önerilse de, özellikle görevler uzun süre çalışıyorsa güncelleştirmeler görev ilerleme durumunu kesintiye uğratabilir. bir işletim sistemi güncelleştirmesinin beklenmedik bir şekilde gerçekleşmediğinden emin olmanız gerekiyorsa bu değeri false olarak ayarlayabilirsiniz.

Kullanılamaz durumdaki düğüm

Batch, computeNodeState unusable değerini birçok nedenden dolayı olarak ayarlayabilir. Bir düğüme unusable görev zamanlayamazsınız, ancak düğüm yine de ücretlendirilir.

Batch nedeni saptayabiliyorsa computeNodeError özelliği bunu bildirir. Düğüm bir unusable durumdaysa ancak computeNodeError yoksa, Batch'in VM ile iletişim kuramadığı anlamına gelir. Bu durumda Batch her zaman VM'yi kurtarmaya çalışır. Ancak Batch, durumları unusableolsa bile uygulama paketlerini veya kapsayıcıları yükleyemeyen VM'leri otomatik olarak kurtarmaya çalışmaz.

Düğümlerin diğer nedenleri unusable aşağıdaki nedenleri içerebilir:

  • Özel bir VM görüntüsü geçersiz. Örneğin, görüntü düzgün hazırlanmamış.
  • Bir altyapı hatası veya düşük düzeyli yükseltme nedeniyle vm taşınır. Batch düğümü kurtarır.
  • Vm görüntüsü, onu desteklemeyen bir donanıma dağıtıldı.
  • VM'ler bir Azure sanal ağındadır ve önemli bağlantı noktalarına yönelik trafik engellenmiştir.
  • VM'ler bir sanal ağdadır, ancak Azure Depolama'ya giden trafik engellenir.
  • VM'ler özel DNS yapılandırmasına sahip bir sanal ağda yer alır ve DNS sunucusu Azure depolamayı çözümleyemez.

Düğüm aracısı günlük dosyaları

Her havuz düğümünde çalışan Batch aracısı işlemi, bir havuz düğümü sorunu hakkında desteğe başvurmanız gerektiğinde yardımcı olabilecek günlük dosyaları sağlar. Azure portalı, Batch Gezgini veya İşlem Düğümü - Batch Hizmeti Günlüklerini Karşıya Yükleme API'sini kullanarak bir düğüm için günlük dosyalarını karşıya yükleyebilirsiniz. Günlük dosyalarını karşıya yükleyip kaydettikten sonra, düğümleri çalıştırma maliyetinden tasarruf etmek için düğümü veya havuzu silebilirsiniz.

Düğüm diski dolu

Batch, aşağıdaki iş dosyaları, görev dosyaları ve paylaşılan dosyalar gibi dosyaları depolamak için düğüm havuzu VM'sinde geçici sürücüyü kullanır:

  • Uygulama paketi dosyaları
  • Görev kaynak dosyaları
  • Batch klasörlerinden birine indirilen uygulamaya özgü dosyalar
  • Her görev uygulaması yürütmesi için Stdout ve stderr dosyaları
  • Uygulamaya özgü çıkış dosyaları

Uygulama paketleri veya başlangıç görevi kaynak dosyaları gibi dosyalar, Batch havuz düğümünü oluşturduğunda yalnızca bir kez yazılır. Yalnızca bir kez yazmalarına rağmen, bu dosyalar çok büyükse geçici sürücüyü doldurabilir.

Stdout ve stderr gibi diğer dosyalar, bir düğümün çalıştırıldığı her görev için yazılır. Aynı düğümde çok sayıda görev çalıştırılıyorsa veya görev dosyaları çok büyükse, geçici sürücüyü doldurabilir.

Düğüm, başladıktan sonra kullanıcı oluşturmak için işletim sistemi diskinde de az miktarda alana ihtiyaç duyar.

Geçici sürücünün boyutu VM boyutuna bağlıdır. VM boyutu seçerken dikkat edilmesi gereken noktalardan biri, geçici sürücünün planlanan iş yükü için yeterli alana sahip olduğundan emin olmaktır.

Azure portalında havuz eklediğinizde, Kaynak disk boyutu sütunu da dahil olmak üzere VM boyutlarının tam listesini görüntüleyebilirsiniz. VM boyutlarını açıklayan makalelerde Geçici Depolama sütunu olan tablolar vardır. Daha fazla bilgi için bkz. İşlem için iyileştirilmiş sanal makine boyutları. Örnek boyut tablosu için bkz . Fsv2 serisi.

Her görev tarafından yazılan dosyalar için bir bekletme süresi belirtebilirsiniz. Bekletme süresi, görev dosyalarını otomatik olarak temizlemeden önce ne kadar süreyle tutulacaklarını belirler. Depolama gereksinimlerini azaltmak için saklama süresini kısaltabilirsiniz.

Geçici diskin veya işletim sistemi diskinin alanı tükenirse veya alan bitmek üzereyse, düğüm computeNoteState'e unusable taşınır ve düğüm hatası diskin dolu olduğunu belirtir.

Düğümde nelerin yer kapladığından emin değilseniz düğüme uzaktan bağlanmayı ve el ile araştırmayı deneyin. Dosya - İşlem Düğümünden Liste API'sini kullanarak Batch tarafından yönetilen klasörlerdeki dosyaları ,örneğin görev çıkışlarını inceleyebilirsiniz. Bu API yalnızca Batch tarafından yönetilen dizinlerdeki dosyaları listeler. Görevleriniz başka bir yerde dosya oluşturduysa, bu API bunları göstermez.

Düğümden ihtiyacınız olan tüm verileri almayı veya dayanıklı bir depoya yüklemeyi tamamladıktan sonra, yer açmak için gerektiğinde verileri silebilirsiniz.

Görev verileri hala düğümlerde olan eski tamamlanmış işleri veya görevleri silebilirsiniz. Düğümdeki recentTasks taskInformation içindeki koleksiyona bakın veya Dosya - İşlem Düğümünden Liste API'sini kullanın. Bir işin silinmesi, işteki tüm görevleri siler. İşteki görevlerin silinmesi, düğümlerdeki görev dizinlerindeki verilerin silinmesini tetikler ve alan boşalttır. Yeterli alan boşaltdıktan sonra düğümü yeniden başlatın. Düğümün unusable durumu dışına ve tekrar içine taşınması idle gerekir.

VirtualMachineConfiguration havuzlarında kullanılamayan bir düğümü kurtarmak için Havuz - Düğümleri Kaldır API'sini kullanarak düğümü havuzdan kaldırabilirsiniz. Ardından, hatalı düğümü yeni bir düğümle değiştirmek için havuzu yeniden büyütebilirsiniz.

Önemli

Reimage şu anda VirtualMachineConfiguration havuzları için desteklenmiyor.

Sonraki adımlar

  • İş ve görev hatası denetimi hakkında bilgi edinin.
  • Azure Batch ile çalışmaya yönelik en iyi yöntemler hakkında bilgi edinin.