Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bazı Azure Batch havuzu oluşturma ve yönetim işlemleri hemen gerçekleşir. Bu işlemler için hataları algılamak basittir, çünkü hatalar genellikle API'den, komut satırından veya kullanıcı arabiriminden hemen döner. 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. Daha ayrıntılı hata iletilerinin eklenmesiyle birlikte, bu sorunları tanılama ve çözme daha kolay hale gelmiştir.
Geçiş Sağlayıcısı Hata Ayrıntıları
Geçiş sağlayıcısı hataları, Azure Sanal Makine Ölçek Kümesi (VMSS) gibi temel Azure kaynak sağlayıcılarından doğrudan aktarılır ve havuz işleminin neden başarısız olduğu hakkında daha derin içgörüler sunar. Bu hatalar genellikle bir havuzun oluşturulması, yeniden boyutlandırılması veya silinmesi alt katman hizmet sorunundan etkilendiğinde oluşur.
Geçiş Sağlayıcısı Hatasının Yapısı
Bu hatalar, aşağıdaki temel bileşenleri içeren yapılandırılmış bir JSON biçiminde sağlanır:
- Hata Kodu: Karşılaşılan hata türü (örneğin, AllocationFailed, BadRequest vb.).
- Hata İletisi: Hatanın kısa açıklaması
- Sağlayıcı Hatası Json: Temel Azure hizmeti (örn. VMSS) tarafından oluşturulan ayrıntılı bir hata mesajı.
- Sağlayıcı Hatası Kesildi: Boyut sınırları nedeniyle sağlayıcı hata iletisinin kesilip kesilmediğini belirten Boolean değeri.
Örnek Geçiş Sağlayıcısı Hataları
Örnek 1
Hata Kodu:AllocationFailed
Hata İletisi: İstenen sayıda ayrılmış düğüm ayrılamadı
Sağlayıcı Hatası JSON:
{
"error": {
"code": "BadRequest",
"message": "The selected VM size 'STANDARD_A1_V2' cannot boot Hypervisor Generation '2'. If this was a Create operation, please ensure that the Hypervisor Generation of the Image matches the Hypervisor Generation of the selected VM Size. If this was an Update operation, please choose a Hypervisor Generation '2' VM Size."
}
}
Sağlayıcı Hatası JSON Kesildi: False
Bu hata, VM boyutu ile Hiper Yönetici oluşturma arasında bir uyuşmazlık olduğunu gösterir. Hata iletisi, sorunu çözmek için uyumlu bir VM boyutu seçmenizi önerir.
Örnek 2
Hata Kodu:AllocationFailed
Hata İletisi: Havuzu yeniden boyutlandırırken bir iç hata oluştu
Sağlayıcı Hatası JSON:
{
"error": {
"code": "ScopeLocked",
"message": "The scope '/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/VirtualMachineScaleSets/<guid>-azurebatch-VMSS-D' cannot perform write operation because the following scope(s) are locked: '/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/VirtualMachineScaleSets/<guid>-azurebatch-VMSS-D'. Please remove the lock and try again."
}
}
Sağlayıcı Hatası JSON Kesik: False
Bu hata, havuz yeniden boyutlandırma işleminin bir kapsam kilitli olduğundan başarısız olduğunu ve yazma işlemini engellediğini gösterir; kilidin kaldırılması sorunu çözebilir.
Geçiş sağlayıcısı hataları, havuz işlemi hataları hakkında daha ayrıntılı içgörüler sağlayarak sorunları doğrudan Azure hizmetlerinden tanılamayı ve çözmeyi kolaylaştırır.
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. Havuz Oluştur veya HavuzuYeniden Boyutlandır API'lerinde yeniden boyutlandırma zaman aşımını 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.
Yeniden boyutlandırma hatalarının yaygın nedenleri şunlardır:
Yeniden boyutlandırma zaman aşımı çok kısa. Genellikle, 15 dakikalık varsayılan zaman aşımı havuz düğümlerini ayırmak veya kaldırmak için yeterlidir. 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 Batch hizmeti kotaları ve sınırları bölümüne bakın.
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.
Sanal ağda bir havuz olduğunda kaynaklar yetersiz. 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 tahsis edilmesi daha uzun sürebilir ve yeniden boyutlandırma sırasında zaman aşımı gerçekleşebilir. 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 uğrar.
- 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 Havuzu Otomatik Ölçeklendirmeyi Değerlendir ö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, state ve stateTransitionTime özelliklerini kullanarak havuz silme işleminin fazla zaman aldığını algılayabilir.
Havuz silme işlemi beklenenden uzun sürüyorsa Batch, havuz başarıyla silinene kadar düzenli aralıklarla yeniden denemeye devam eder. 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.Batchkaydı havuzunuzu içeren abonelikten kaldırılmış olabilir.Artık kullanıcı aboneliği modundaki Batch hesapları, havuzunuzu içeren abonelikte Katkıda Bulunan veya Sahip rolüne sahip 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 halen maliyet oluşturduğundan, kullanamayacağınız düğümler için ödeme yapmaktan kaçınmak için sorunların tespit edilmesi önemlidir. Yaygın düğüm hataları hakkında bilgi edinmek ve geçerli iş durumunu bilmek sorun giderme için yararlıdır.
Görev hatalarını başlat
Havuz için isteğe bağlı bir başlangıç görevi 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şlatma görevi, bir düğüm başlatıldığında her düğüm için çalıştırılır.
waitForSuccess özelliği, Batch'in bir düğüme herhangi bir görevi 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, eğer waitForSuccesstrue olarak ayarlandıysa, Batch'in computeNodeState değerini starttaskfailed olarak ayarlamasına da 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 olay bir düğümün yeniden başlatılmasına neden olduğunda ve ardından bir başlatma görevi çalıştırıldığında, bir işletim sistemi (OS) veya kısa ömürlü disk yeniden yüklenirken diğeri yüklenmez. 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 veya sıkıştırması açılamazsa, computeNodeError özelliği hatayı bildirir ve düğüm durumunu unusable olarak ayarlar.
Kapsayıcı indirme hatası
Havuzda bir veya daha fazla kapsayıcı referansı belirtebilirsiniz. Batch, belirtilen kapsayıcıları her bir düğüme indirir. Kapsayıcı indirilemezse computeNodeError özelliği hatayı bildirir ve düğüm durumunu olarak unusableayarlar.
Düğüm İS güncelleştirmeleri
Windows havuzları için enableAutomaticUpdates varsayılan olarak true olarak ayarlanır. 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'i birçok nedenden dolayı unusable değerine ayarlayabilir.
unusable düğüme görev zamanlayamazsınız, ancak düğüm yine de ücretlendirmeye tabi olur.
Batch nedeni saptayabiliyorsa computeNodeError özelliği bunu bildirir. Düğüm bir unusable durumdaysa ve computeNodeError yoksa, bu, 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ü geri yükler.
- 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ı yükleyip kaydettikten sonra, düğüm veya havuzu silerek düğümleri çalıştırma maliyetinden tasarruf edebilirsiniz.
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. Tutma 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 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.
İhtiyacınız olan verileri düğümden aldıktan veya kalıcı bir depoya yükledikten 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.
recentTasks koleksiyonuna düğümdeki taskInformation içinde bakın veya Dosya - Bilgisayar Düğümünden Listele 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 durumundan çıkıp yeniden idle durumuna girmesi 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.
Important
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.