Batch içe büyük ölçekli paralel işlem çözümleri geliştirmeDevelop large-scale parallel compute solutions with Batch

Azure Batch hizmetinin temel bileşenlerine ilişkin bu genel bakışta, Batch geliştiricilerinin büyük ölçekli paralel işlem çözümleri derlemek üzere kullanabileceği birincil hizmetler ve kaynaklar ele alınmaktadır.In this overview of the core components of the Azure Batch service, we discuss the primary service features and resources that Batch developers can use to build large-scale parallel compute solutions.

Dağıtılmış bir hesaplama uygulaması veya doğrudan REST API çağrıları yapan bir hizmet geliştirirken ya da Batch SDK 'lardanbirini kullanıyorsanız, bu makalede ele alınan kaynak ve özelliklerin birçoğunu kullanırsınız.Whether you're developing a distributed computational application or service that issues direct REST API calls or you're using one of the Batch SDKs, you'll use many of the resources and features discussed in this article.

İpucu

Batch hizmetine daha yüksek düzeyde bir giriş için bkz. Azure Batch temel bilgileri.For a higher-level introduction to the Batch service, see Basics of Azure Batch. Ayrıca en son Toplu İşlem hizmet güncelleştirmeleri’ne bakın.Also see the latest Batch service updates.

Batch hizmeti iş akışıBatch service workflow

Aşağıdaki üst düzey iş akışı, paralel iş yüklerini işlemek üzere Batch hizmetini kullanan neredeyse tüm uygulamalar ve hizmetler için tipiktir:The following high-level workflow is typical of nearly all applications and services that use the Batch service for processing parallel workloads:

  1. İşlemek istediğiniz veri dosyalarını bir Azure depolama hesabına yükleyin.Upload the data files that you want to process to an Azure Storage account. Batch, Azure Blob depolama alanına erişim için yerleşik destek içerir ve görevler çalıştırıldığında görevleriniz bu dosyaları işlem düğümlerine indirebilir.Batch includes built-in support for accessing Azure Blob storage, and your tasks can download these files to compute nodes when the tasks are run.
  2. Görevlerinizin çalıştıracağı uygulama dosyalarını karşıya yükleyin.Upload the application files that your tasks will run. Bu dosyalar ikili dosyalar ya da komut dosyaları ve onların bağımlılıkları olabilir ve işlerinizdeki görevler tarafından yürütülür.These files can be binaries or scripts and their dependencies, and are executed by the tasks in your jobs. Görevleriniz bu dosyaları Storage hesabınızdan indirebilir veya uygulama yönetimi ve dağıtımı için Batch hizmetinin uygulama paketleri özelliğini kullanabilirsiniz.Your tasks can download these files from your Storage account, or you can use the application packages feature of Batch for application management and deployment.
  3. Bir işlem düğümleri havuzu oluşturun.Create a pool of compute nodes. Bir havuz oluşturduğunuzda havuz için işlem düğümü sayısını, boyutlarını ve işletim sistemini belirtin.When you create a pool, you specify the number of compute nodes for the pool, their size, and the operating system. İşinizdeki her bir görev çalıştığında havuzunuzdaki düğümlerden birini yürütmek üzere atanır.When each task in your job runs, it's assigned to execute on one of the nodes in your pool.
  4. Bir oluşturun.Create a job. İş bir görev koleksiyonunu yönetir.A job manages a collection of tasks. Her işi, işin görevlerinin çalışacağı belirli bir havuz ile ilişkilendirin.You associate each job to a specific pool where that job's tasks will run.
  5. İşe görevler ekleyin.Add tasks to the job. Her görev, Storage hesabınızdan indirdiği veri dosyalarını işlemek üzere karşıya yüklediğiniz uygulamayı ve komut dosyasını çalıştırır.Each task runs the application or script that you uploaded to process the data files it downloads from your Storage account. Her görev tamamlandığında çıktısını Azure Depolama hizmetine yükleyebilir.As each task completes, it can upload its output to Azure Storage.
  6. İşin ilerleme durumunu izleyin ve görev çıktısını Azure Depolama’dan alın.Monitor job progress and retrieve the task output from Azure Storage.

Aşağıdaki bölümlerde, dağıtılmış hesaplama senaryonuzu etkinleştiren toplu Iş kaynakları ele alınmaktadır.The following sections discuss the resources of Batch that enable your distributed computational scenario.

Not

Batch hizmetini kullanmak için bir Batch hesabı gereklidir.You need a Batch account to use the Batch service. Ayrıca, Batch çözümlerinin çoğu dosya depolama ve alma için ilişkili bir Azure depolama hesabı kullanır.Most Batch solutions also use an associated Azure Storage account for file storage and retrieval.

Batch hizmet kaynaklarıBatch service resources

Aşağıdaki kaynaklardan--hesaplar, işlem düğümleri, havuzlar, işler ve görevler--bazıları Batch hizmetini kullanan tüm çözümler için gereklidir.Some of the following resources--accounts, compute nodes, pools, jobs, and tasks--are required by all solutions that use the Batch service. İş zamanlamaları ve uygulama paketleri gibi diğer özellikler de faydalıdır, ancak isteğe bağlıdır.Others, like job schedules and application packages, are helpful, but optional, features.

HesapAccount

Bir Batch hesabı Batch hizmeti dahilinde benzersiz şekilde tanımlanan bir varlıktır.A Batch account is a uniquely identified entity within the Batch service. Tüm işlemler bir Batch hesabıyla ilişkilendirilir.All processing is associated with a Batch account.

Azure portalını kullanarak ya da Toplu Yönetim .NET kitaplığı ile olduğu gibi program aracılığıyla bir Azure Batch hesabı oluşturabilirsiniz.You can create an Azure Batch account using the Azure portal or programmatically, such as with the Batch Management .NET library. Hesabı oluştururken işle ilgili giriş veya çıkış verilerini veya uygulamaları kaydetmek için bir Azure depolama hesabı ilişkilendirebilirsiniz.When creating the account, you can associate an Azure storage account for storing job-related input and output data or applications.

Tek bir Batch hesabında birden fazla Batch iş yükü çalıştırabilir ya da iş yüklerinizi aynı abonelik ve farklı Azure bölgelerindeki Batch hesapları arasında dağıtabilirsiniz.You can run multiple Batch workloads in a single Batch account, or distribute your workloads among Batch accounts that are in the same subscription, but in different Azure regions.

Not

Batch hesabı oluştururken iki havuz ayırma modu arasından seçim yapabilirsiniz: kullanıcı aboneliği ve Batch hizmeti.When creating a Batch account, you can choose between two pool allocation modes: user subscription and Batch service. Çoğu durumda, havuzların Azure tarafından yönetilen aboneliklerde, arka planda ayrıldığı varsayılan Batch hizmeti modunu kullanmanız gerekir.For most cases, you should use the default Batch service mode, in which pools are allocated behind the scenes in Azure-managed subscriptions. Alternatif Kullanıcı aboneliği modunda, bir havuz oluşturulduğunda Batch VM'leri ve diğer kaynaklar doğrudan aboneliğinizde oluşturulur.In the alternative user subscription mode, Batch VMs and other resources are created directly in your subscription when a pool is created. Azure Ayrılmış VM Örnekleri kullanarak Batch havuzları oluşturmak istiyorsanız Kullanıcı aboneliği modu gerekir.User subscription mode is required if you want to create Batch pools using Azure Reserved VM Instances. Kullanıcı aboneliği modunda bir Batch hesabı oluşturmak için aboneliğinizi Azure Batch hizmetine kaydetmeniz ve hesabı bir Azure Key Vault ile ilişkilendirmeniz de gerekir.To create a Batch account in user subscription mode, you must also register your subscription with Azure Batch, and associate the account with an Azure Key Vault.

Azure Storage hesabınızAzure Storage account

Batch çözümlerinin çoğu, kaynak dosyalarını ve çıkış dosyalarını depolamak için Azure Depolama kullanır.Most Batch solutions use Azure Storage for storing resource files and output files. Örneğin, Batch görevleriniz (standart görevler, başlangıç görevleri, iş hazırlama görevleri ve iş bırakma görevleri dahil) genellikle depolama hesabında yer alan kaynak dosyalarını belirtir.For example, your Batch tasks (including standard tasks, start tasks, job preparation tasks, and job release tasks) typically specify resource files that reside in a storage account.

Batch, aşağıdaki Azure Depolama hesap türlerini destekler:Batch supports the following types of Azure Storage accounts:

  • Genel amaçlı v2 (GPv2) hesaplarıGeneral-purpose v2 (GPv2) accounts
  • Genel amaçlı v1 (GPv1) hesaplarıGeneral-purpose v1 (GPv1) accounts
  • Blob depolama hesapları (şu anda Sanal Makine yapılandırmasındaki havuzlar için desteklenmektedir)Blob storage accounts (currently supported for pools in the Virtual Machine configuration)

Depolama hesapları hakkında daha fazla bilgi için bkz. Azure Depolama hesabına genel bakış.For more information about storage accounts, see Azure storage account overview.

Batch hesabını oluşturduğunuzda veya daha sonra Batch hesabınızla bir depolama hesabını ilişkilendirebilirsiniz.You can associate a storage account with your Batch account when you create the Batch account, or later. Bir depolama hesabı seçerken, maliyet ve performans gereksinimlerinizi göz önünde bulundurun.Consider your cost and performance requirements when choosing a storage account. Örneğin, GPv2 ve blob depolama hesabı seçenekleri, GPv1’e kıyasla daha büyük kapasite ve ölçeklenebilirlik sınırlarını destekler.For example, the GPv2 and blob storage account options support greater capacity and scalability limits compared with GPv1. (Depolama limitinin artışını istemek için Azure desteğine başvurun.) Bu hesap seçenekleri, depolama hesabından okuyan veya depolama hesabından yazan çok sayıda paralel görev içeren Batch çözümlerinin performansını iyileştirebilir.(Contact Azure Support to request an increase in a storage limit.) These account options can improve the performance of Batch solutions that contain a large number of parallel tasks that read from or write to the storage account.

İşlem düğümüCompute node

İşlem düğümü, uygulama iş yükünüzün bir kısmını işlemeye ayrılmış bir Azure sanal makinesi (VM) veya bulut hizmeti sanal makinesidir.A compute node is an Azure virtual machine (VM) or cloud service VM that is dedicated to processing a portion of your application's workload. Bir düğümün boyutu CPU çekirdeklerinin sayısını, bellek kapasitesini ve düğüme ayrılan yerel dosya sistemi boyutunu belirler.The size of a node determines the number of CPU cores, memory capacity, and local file system size that is allocated to the node. Azure Cloud Services, Azure sanal makineler marketi'ndeki görüntüleri veya hazırladığınız özel görüntüleri kullanarak Windows veya Linux düğümleri için havuzlar oluşturabilirsiniz.You can create pools of Windows or Linux nodes by using Azure Cloud Services, images from the Azure Virtual Machines Marketplace, or custom images that you prepare. Bu seçenekler hakkında daha fazla bilgi için aşağıdaki Havuz bölümüne bakın.See the following Pool section for more information on these options.

Düğümler, düğümün işletim sistemi ortamı tarafından desteklenen herhangi bir yürütülebilir dosyayı ya da komut dosyasını çalıştırabilir.Nodes can run any executable or script that is supported by the operating system environment of the node. Yürütülebilir dosyalar veya betikler *. exe, *. cmd, *. bat, Windows için PowerShell betikleri ve Linux için ikili dosyalar, Shell ve Python betikleri içerir.Executables or scripts include *.exe, *.cmd, *.bat, and PowerShell scripts for Windows--and binaries, shell, and Python scripts for Linux.

Batch içindeki tüm işlem düğümleri ayrıca şunları içerir:All compute nodes in Batch also include:

  • Standart bir klasör yapısı ve görevlere göre başvurulabilen ilişkili ortam değişkenleri.A standard folder structure and associated environment variables that are available for reference by tasks.
  • Erişimi denetlemek için yapılandırılan Güvenlik Duvarı ayarları.Firewall settings that are configured to control access.
  • Hem Windows (Uzak Masaüstü Protokolü (RDP)) hem de Linux (Güvenli Kabuk (SSH)) düğümlerine uzaktan erişim.Remote access to both Windows (Remote Desktop Protocol (RDP)) and Linux (Secure Shell (SSH)) nodes.

HavuzPool

Havuz, uygulamanızın üzerinde çalıştığı bir düğüm koleksiyonudur.A pool is a collection of nodes that your application runs on. Havuz sizin tarafınızdan elle ya da siz yapılacak işleri belirttiğinizde Batch hizmeti tarafından otomatik olarak oluşturulabilir.The pool can be created manually by you, or automatically by the Batch service when you specify the work to be done. Uygulamanızın kaynak gereksinimlerini karşılayan bir havuz oluşturup yönetebilirsiniz.You can create and manage a pool that meets the resource requirements of your application. Bir havuz yalnızca içinde oluşturulduğu Batch hesabı tarafından kullanılabilir.A pool can be used only by the Batch account in which it was created. Bir Batch hesabı birden fazla havuza sahip olabilir.A Batch account can have more than one pool.

Azure Batch havuzları temel Azure işlem platformu üzerinde derlenir.Azure Batch pools build on top of the core Azure compute platform. Bu havuzlar büyük ölçekli ayırma, uygulama yüklemesi, veri dağıtımı, durum izleme ve bir havuzdaki işlem düğümü sayısının esnek şekilde ayarlanmasını (ölçeklendirme) sağlar.They provide large-scale allocation, application installation, data distribution, health monitoring, and flexible adjustment of the number of compute nodes within a pool (scaling).

Bir havuza eklenen her düğüme benzersiz bir ad ve IP adresi atanır.Every node that is added to a pool is assigned a unique name and IP address. Bir düğüm havuzdan kaldırıldığında, işletim sistemi ya da dosyalara yapılan tüm değişiklikler kaybedilir ve düğümün adı ile IP adresi gelecekte kullanım için boşta kalır.When a node is removed from a pool, any changes that are made to the operating system or files are lost, and its name and IP address are released for future use. Bir düğüm havuzdan ayrıldığında ömrü sona erer.When a node leaves a pool, its lifetime is over.

Bir havuz oluşturduğunuzda aşağıdaki öznitelikleri belirtebilirsiniz:When you create a pool, you can specify the following attributes:

  • İşlem düğümü işletim sistemi ve sürümüCompute node operating system and version
  • İşlem düğümü türü ve hedef düğüm sayısıCompute node type and target number of nodes
  • İşlem düğümlerinin boyutuSize of the compute nodes
  • Ölçeklendirme ilkesiScaling policy
  • Görev zamanlama ilkesiTask scheduling policy
  • İşlem düğümlerinin iletişim durumuCommunication status for compute nodes
  • İşlem düğümleri için başlangıç görevleriStart tasks for compute nodes
  • Uygulama paketleriApplication packages
  • Ağ yapılandırmasıNetwork configuration

Bu ayarlar aşağıdaki bölümlerde ayrıntılı şekilde açıklanmıştır.Each of these settings is described in more detail in the following sections.

Önemli

Batch hesaplarının, bir Batch hesabındaki çekirdek sayısını sınırlayan varsayılan bir kotası vardır.Batch accounts have a default quota that limits the number of cores in a Batch account. Çekirdek sayısı, işlem düğümü sayısına karşılık gelir.The number of cores corresponds to the number of compute nodes. Varsayılan kotaları ve kota artırma yönergelerini Azure Batch hizmeti için kotalar ve limitler bölümünde bulabilirsiniz.You can find the default quotas and instructions on how to increase a quota in Quotas and limits for the Azure Batch service. Havuzunuzun hedef düğüm sayısına ulaşmamasının nedeni çekirdek kotası olabilir.If your pool is not achieving its target number of nodes, the core quota might be the reason.

İşlem düğümü işletim sistemi ve sürümüCompute node operating system and version

Batch havuzu oluştururken Azure sanal makine yapılandırmasını ve havuzdaki her bir işlem düğümünde çalıştırmak istediğiniz işletim sistemi türünü belirtebilirsiniz.When you create a Batch pool, you can specify the Azure virtual machine configuration and the type of operating system you want to run on each compute node in the pool. Batch ile birlikte kullanılabilen iki yapılandırma türü şunlardır:The two types of configurations available in Batch are:

  • Havuzun Azure sanal makinelerinden oluştuğunu belirten sanal makine yapılandırması.The Virtual Machine Configuration, which specifies that the pool is composed of Azure virtual machines. Bu VM'ler Linux veya Windows görüntülerinden oluşturulabilir.These VMs may be created from either Linux or Windows images.

    Sanal Makine Yapılandırmasını temel alan bir havuz oluşturduğunuzda, yalnızca düğümlerin boyutunu ve onları oluşturmak için kullanılan görüntülerin kaynağını değil, aynı zamanda sanal makine görüntü başvurusunu ve düğümlere yüklenecek Batch düğümü aracı SKU'sunu da belirtmeniz gerekir.When you create a pool based on the Virtual Machine Configuration, you must specify not only the size of the nodes and the source of the images used to create them, but also the virtual machine image reference and the Batch node agent SKU to be installed on the nodes. Bu havuz özelliklerini belirtme hakkında daha fazla bilgi için bkz. Azure Batch havuzlarında Linux işlem düğümlerini hazırlama.For more information about specifying these pool properties, see Provision Linux compute nodes in Azure Batch pools. İsteğe bağlı olarak Market görüntülerinden oluşturulmuş havuz VM'lerine bir veya daha fazla boş veri diski ekleyebilir veya VM'leri oluşturmak için kullanılan özel görüntülere veri diskleri dahil edebilirsiniz.You can optionally attach one or more empty data disks to pool VMs created from Marketplace images, or include data disks in custom images used to create the VMs. Veri disklerini dahil etmek için, diskleri kullanmak üzere bir VM içinden bağlamanız ve biçimlendirmeniz gerekir.When including data disks, you need to mount and format the disks from within a VM to use them.

  • Havuzun Azure Cloud Services düğümlerinden oluştuğunu belirten Cloud Services yapılandırması.The Cloud Services Configuration, which specifies that the pool is composed of Azure Cloud Services nodes. Cloud Services yalnızcaWindows işlem düğümleri sağlar.Cloud Services provides Windows compute nodes only.

    Cloud Services Yapılandırması havuzları için kullanılabilen işletim sistemleri Azure Konuk işletim sistemi sürümleri ve SDK uyumluluk matrisi içinde listelenmiştir.Available operating systems for Cloud Services Configuration pools are listed in the Azure Guest OS releases and SDK compatibility matrix. Cloud Services düğümleri içeren bir havuz oluşturduğunuzda düğüm boyutunu ve İşletim Sistemi Ailesi'ni belirtmeniz gerekir.When you create a pool that contains Cloud Services nodes, you need to specify the node size and its OS Family. Cloud Services, Windows çalıştıran sanal makinelerden daha hızlı bir şekilde Azure 'a dağıtılır.Cloud Services is deployed to Azure more quickly than virtual machines running Windows. Windows işlem düğümlerinden oluşan havuzlar oluşturmak istiyorsanız, Cloud Services'ın dağıtım süresi açısından daha iyi bir performans sunduğunu görebilirsiniz.If you want pools of Windows compute nodes, you may find that Cloud Services provide a performance benefit in terms of deployment time.

    • İşletim Sistemi Ailesi, işletim sistemiyle hangi .NET sürümlerinin yüklendiğini de belirler.The OS Family also determines which versions of .NET are installed with the OS.
    • Cloud Services dahilindeki çalışan rollerinde olduğu gibi bir İşletim Sistemi Sürümü belirtebilirsiniz (çalışan rolleri hakkında daha fazla bilgi için bkz. Cloud Services’e genel bakış).As with worker roles within Cloud Services, you can specify an OS Version (for more information on worker roles, see the Cloud Services overview).
    • Çalışan rollerinde olduğu gibi düğümlerin otomatik olarak yükseltilmesi için İşletim Sistemi Sürümü ’ne yönelik * belirtilmesi önerilir ve yeni yayımlanmış sürümlerin gereksinimini karşılamak için çalışma yapılması gerekmez.As with worker roles, we recommend that you specify * for the OS Version so that the nodes are automatically upgraded, and there is no work required to cater to newly released versions. Belirli bir işletim sistemi sürümünün seçildiği birincil kullanım durumu, sürümün güncelleştirilmesine izin vermeden önce geriye dönük uyumluluk testinin gerçekleştirilmesine izin vererek uygulama uyumluluğunun sağlandığından emin olmaktır.The primary use case for selecting a specific OS version is to ensure application compatibility, which allows backward compatibility testing to be performed before allowing the version to be updated. Doğrulama sonrasında havuzun İşletim Sistemi Sürümü güncelleştirilebilir ve yeni işletim sistemi görüntüsü yüklenebilir; çalışan tüm görevler kesilir ve yeniden kuyruğa alınır.After validation, the OS Version for the pool can be updated and the new OS image can be installed--any running tasks are interrupted and requeued.

Havuz oluştururken VHD'nizin temel görüntüsünün işletim sistemine bağlı olarak uygun nodeAgentSkuId değerini seçmeniz gerekir.When you create a pool, you need to select the appropriate nodeAgentSkuId, depending on the OS of the base image of your VHD. Desteklenen düğüm Aracısı SKU 'Larını Listele işlemini çağırarak, Işletim sistemi görüntüsü başvurularına kullanılabilir düğüm Aracısı SKU kimliklerinin eşlemesini alabilirsiniz.You can get a mapping of available node agent SKU IDs to their OS Image references by calling the List Supported Node Agent SKUs operation.

Sanal Makine havuzları için özel görüntülerCustom images for Virtual Machine pools

Özel görüntülerle havuz oluşturma hakkında bilgi edinmek için bkz. paylaşılan görüntü galerisini kullanarak özel bir havuz oluşturma.To learn how to create a pool with custom images, see Use the Shared Image Gallery to create a custom pool.

Alternatif olarak, yönetilen bir görüntü kaynağı kullanarak sanal makineler için özel bir havuz oluşturabilirsiniz.Alternatively, you can create a custom pool of virtual machines using a managed image resource. Azure VM'lerinden özel Linux görüntüleri hazırlama hakkında bilgi için bkz. Sanal makine veya VHD görüntüsü oluşturma.For information about preparing custom Linux images from Azure VMs, see How to create an image of a virtual machine or VHD. Azure sanal makinelerinden özel Windows görüntüleri hazırlama hakkında daha fazla bilgi için bkz. Azure'da genelleştirilmiş VM'nin yönetilen görüntüsünü oluşturma.For information about preparing custom Windows images from Azure VMs, see Create a managed image of a generalized VM in Azure.

Sanal Makine havuzlarında kapsayıcı desteğiContainer support in Virtual Machine pools

Batch API'lerini kullanarak Sanal Makine Yapılandırma havuzu oluştururken havuzu görevleri Docker kapsayıcılarında çalıştıracak şekilde ayarlayabilirsiniz.When creating a Virtual Machine Configuration pool using the Batch APIs, you can set up the pool to run tasks in Docker containers. Şu anda Docker kapsayıcılarını destekleyen bir görüntü kullanarak havuz oluşturmanız gerekir.Currently, you must create the pool using an image that supports Docker containers. Azure Market'teki Windows Server 2016 Datacenter with Containers görüntüsünü kullanın veya Docker Community Edition ya da Enterprise Edition ile gerekli sürücüleri içeren özel bir VM görüntüsü sağlayın.Use the Windows Server 2016 Datacenter with Containers image from the Azure Marketplace, or supply a custom VM image that includes Docker Community Edition or Enterprise Edition and any required drivers. Havuz ayarları, kapsayıcı görüntülerini havuz oluşturulduğunda VM'lere kopyalayan bir kapsayıcı yapılandırması içermelidir.The pool settings must include a container configuration that copies container images to the VMs when the pool is created. Havuzda çalışan görevler, kapsayıcı görüntülerine ve kapsayıcı çalıştırma seçeneklerine başvurabilir.Tasks that run on the pool can then reference the container images and container run options.

Daha fazla bilgi için bkz. Azure Batch’te Docker kapsayıcı uygulamaları çalıştırma.For more information, see Run Docker container applications on Azure Batch.

İşlem düğümü türü ve hedef düğüm sayısıCompute node type and target number of nodes

Bir havuz oluşturduğunuzda, istediğiniz işlem düğümü türlerini ve her biri için hedeflenen sayıyı belirtebilirsiniz.When you create a pool, you can specify which types of compute nodes you want and the target number for each. İki tür işlem düğümü vardır:The two types of compute nodes are:

  • Adanmış işlem düğümleri.Dedicated compute nodes. Adanmış bir işlem düğümleri, iş yükleriniz için ayrılmıştır.Dedicated compute nodes are reserved for your workloads. Bunlar düşük öncelikli düğümlerinden daha pahalıdır, ancak hiçbir zaman etkisiz hale getirilmeyeceği garanti edilir.They are more expensive than low-priority nodes, but they are guaranteed to never be preempted.

  • Düşük öncelikli işlem düğümleri.Low-priority compute nodes. Düşük öncelikli düğümler, Batch iş yüklerinizi çalıştırmak için Azure’daki fazla kapasiteden yararlanır.Low-priority nodes take advantage of surplus capacity in Azure to run your Batch workloads. Düşük öncelikli düğümler, özel düğümlerden saat başına daha ucuz ve önemli işlem gücü gerektiren iş yüklerini etkinleştirir.Low-priority nodes are less expensive per hour than dedicated nodes, and enable workloads requiring significant compute power. Daha fazla bilgi için bkz. Batch ile düşük öncelikli VM’ler kullanma.For more information, see Use low-priority VMs with Batch.

    Azure’daki fazla kapasite yetersiz olduğunda, düşük öncelikli işlem düğümleri etkisiz hale getirilebilir.Low-priority compute nodes may be preempted when Azure has insufficient surplus capacity. Görevler çalıştırılırken bir düğüm etkisiz hale getirilirse, işlem düğümü yeniden kullanılabilir olduğunda görevler yeniden kuyruğa alınır ve tekrar çalıştırılır.If a node is preempted while running tasks, the tasks are requeued and run again once a compute node becomes available again. Düşük öncelikli düğümler, iş tamamlama süresinin esnek olduğu ve işin çok sayıda düğüme dağıtıldığı iş yükleri için iyi bir seçenektir.Low-priority nodes are a good option for workloads where the job completion time is flexible and the work is distributed across many nodes. Senaryonuz için düşük öncelikli düğümleri kullanmaya karar vermeden önce, ön işleme nedeniyle kaybolan tüm çalışmanın en az ve yeniden oluşturulması kolay olacağından emin olun.Before you decide to use low-priority nodes for your scenario, make sure that any work lost due to pre-emption will be minimal and easy to recreate.

Aynı havuzda hem düşük öncelikli hem de adanmış işlem düğümleri olabilir.You can have both low-priority and dedicated compute nodes in the same pool. —Düşük öncelikli ve adanmış— düğüm türlerinin her biri, istediğiniz işlem sayısını belirtebileceğiniz kendi hedef ayarına sahiptir.Each type of node — low-priority and dedicated — has its own target setting, for which you can specify the desired number of nodes.

Bazı durumlarda havuzunuz istenilen düğüm sayısına ulaşmayabileceğinden işlem düğümleri sayısı hedef olarak adlandırılır.The number of compute nodes is referred to as a target because, in some situations, your pool might not reach the desired number of nodes. Örneğin, bir havuz ilk olarak Batch hesabınızın çekirdek kotasına ulaşırsa hedefe ulaşamayabilir.For example, a pool might not achieve the target if it reaches the core quota for your Batch account first. Veya, havuza en fazla düğüm sayısını sınırlayan bir otomatik ölçeklendirme formülü uyguladıysanız, havuz hedefe ulaşamayabilir.Or, the pool might not achieve the target if you have applied an autoscaling formula to the pool that limits the maximum number of nodes.

Hem düşük öncelikli hem de adanmış işlem düğümlerinin fiyatlandırma bilgileri için bkz. Batch Fiyatlandırması.For pricing information for both low-priority and dedicated compute nodes, see Batch Pricing.

İşlem düğümlerinin boyutuSize of the compute nodes

Azure Batch havuzu oluşturduğunuzda, neredeyse Azure'da bulunan tüm VM aileleri ve boyutları arasından seçim yapabilirsiniz.When you create an Azure Batch pool, you can choose from among almost all the VM families and sizes available in Azure. Azure farklı iş yükleri için HPC veya GPU etkin VM boyutları da dahil olmak üzere çeşitli VM boyutları sunar.Azure offers a range of VM sizes for different workloads, including specialized HPC or GPU-enabled VM sizes.

Daha fazla bilgi için bkz. Azure Batch havuzunda işlem düğümleri için VM boyutunu seçme.For more information, see Choose a VM size for compute nodes in an Azure Batch pool.

Ölçeklendirme ilkesiScaling policy

Dinamik iş yükleri için bir havuza bir Otomatik ölçeklendirme formülü yazabilir ve uygulayabilirsiniz.For dynamic workloads, you can write and apply an autoscaling formula to a pool. Batch hizmeti formülünüzü düzenli olarak değerlendirir ve belirtebileceğiniz çeşitli havuz, iş ve görev parametrelerine göre düğüm sayısını ayarlar.The Batch service periodically evaluates your formula and adjusts the number of nodes within the pool based on various pool, job, and task parameters that you can specify.

Görev zamanlama ilkesiTask scheduling policy

Düğüm başına en fazla görev yapılandırma seçeneği havuzdaki her bir işlem düğümünde paralel olarak çalıştırabilecek en fazla görev sayısını belirler.The max tasks per node configuration option determines the maximum number of tasks that can be run in parallel on each compute node within the pool.

Varsayılan yapılandırma bir düğümde tek seferde bir görevin çalışacağını belirtir, ancak bir düğümde aynı anda iki veya daha fazla görev yürütülmesinin faydalı olduğu senaryolar da vardır.The default configuration specifies that one task at a time runs on a node, but there are scenarios where it is beneficial to have two or more tasks executed on a node simultaneously. Düğüm başına birden fazla görevden nasıl yararlanabileceğinizi görmek için eşzamanlı düğüm görevleri makalesindeki örnek senaryoya bakın.See the example scenario in the concurrent node tasks article to see how you can benefit from multiple tasks per node.

Ayrıca, Batch 'in görevleri bir havuzdaki tüm düğümlerde eşit olarak paketleyemeyeceğini veya bir düğümdeki görevleri başka bir düğüme atamadan önce en fazla sayıda göreve paketleyemeyeceğini belirleyen bir Fill türüde belirtebilirsiniz.You can also specify a fill type, which determines whether Batch spreads the tasks evenly across all nodes in a pool, or packs each node with the maximum number of tasks before assigning tasks to another node.

İşlem düğümlerinin iletişim durumuCommunication status for compute nodes

Çoğu senaryoda görevler bağımsız olarak çalışır ve birbirleriyle iletişim kurmaları gerekmez.In most scenarios, tasks operate independently and do not need to communicate with one another. Ancak, MPI senaryolarında olduğu gibi içinde görevlerin iletişim kurması gereken bazı uygulamalar olabilir.However, there are some applications in which tasks must communicate, like MPI scenarios.

Bir havuzu düğümler arasında iletişim kurmaya izin verecek şekilde yapılandırarak bir havuzdaki düğümlerin çalışma zamanında iletişim kurmasını sağlayabilirsiniz.You can configure a pool to allow internode communication, so that nodes within a pool can communicate at runtime. Düğümler arası iletişim etkinleştirildiğinde, Cloud Services havuzlarındaki düğümler 1100'den büyük bağlantı noktaları üzerinde birbiriyle iletişim kurabilir ve Sanal Makine Yapılandırması havuzları hiçbir bağlantı noktası üzerinde trafiği kısıtlamaz.When internode communication is enabled, nodes in Cloud Services Configuration pools can communicate with each other on ports greater than 1100, and Virtual Machine Configuration pools do not restrict traffic on any port.

Düğümler arası iletişimin etkinleştirilmesi, düğümlerin kümeler içindeki yerleşimini da etkiler ve dağıtım kısıtlamaları nedeniyle havuzdaki en fazla düğüm sayısını sınırlayabilir.Enabling internode communication also impacts the placement of the nodes within clusters and might limit the maximum number of nodes in a pool because of deployment restrictions. Uygulamanız düğümler arasında iletişim gerektirmiyorsa Batch hizmeti, artan paralel işleme gücünü etkinleştirmek amacıyla birçok kümeden ve veri merkezinden çok sayıda düğümü havuza ayırabilir.If your application does not require communication between nodes, the Batch service can allocate a potentially large number of nodes to the pool from many different clusters and data centers to enable increased parallel processing power.

İşlem düğümleri için başlangıç görevleriStart tasks for compute nodes

Bir düğüm havuza katıldığında ve bir düğümün yeniden başlatıldığı ya da görüntüsünün yeniden oluşturulduğu her durumda, düğüm üzerinde isteğe bağlı başlangıç görevi yürütülür.The optional start task executes on each node as that node joins the pool, and each time a node is restarted or reimaged. Başlangıç görevi, görevlerinizin işlem düğümlerinde çalıştıracağı uygulamaları yükleme gibi görevlerin yürütülmesi için özellikle işlem düğümlerinin hazırlanmasında yararlıdır.The start task is especially useful for preparing compute nodes for the execution of tasks, like installing the applications that your tasks run on the compute nodes.

Uygulama paketleriApplication packages

Havuzdaki işlem düğümlerine dağıtım yapacak uygulama paketlerini belirtebilirsiniz.You can specify application packages to deploy to the compute nodes in the pool. Uygulama paketleri, görevlerinizin çalıştırdığı uygulamaların dağıtımını ve sürüm oluşturma işlemlerini basitleştirir.Application packages provide simplified deployment and versioning of the applications that your tasks run. Havuz için belirttiğiniz uygulama paketleri, bir düğüm her yeniden başlatıldığında veya görüntüsü yeniden oluşturduğunda o havuza katılan her düğüme yüklenir.Application packages that you specify for a pool are installed on every node that joins that pool, and every time a node is rebooted or reimaged.

Not

Uygulama paketleri 5 Temmuz 2017’den sonra oluşturulmuş tüm Batch havuzlarında desteklenir.Application packages are supported on all Batch pools created after 5 July 2017. Bunların 10 Mart 2016 ve 5 Haziran 2017 arasında oluşturulmuş Batch havuzlarında desteklenebilmesi için, havuzun Bulut Hizmeti yapılandırması kullanılarak oluşturulmuş olması gerekir.They are supported on Batch pools created between 10 March 2016 and 5 July 2017 only if the pool was created using a Cloud Service configuration. 10 Mart 2016’dan önce oluşturulan Batch havuzları uygulama paketlerini desteklemez.Batch pools created prior to 10 March 2016 do not support application packages. Uygulama paketlerini kullanarak uygulamalarınızı Batch düğümlerine dağıtma hakkında daha fazla bilgi için bkz. Batch uygulama paketleriyle işlem düğümlerine uygulama dağıtımı.For more information about using application packages to deploy your applications to your Batch nodes, see Deploy applications to compute nodes with Batch application packages.

Ağ yapılandırmasıNetwork configuration

Havuz işlem düğümlerinin oluşturulması gereken Azure sanal ağın (VNet) alt ağını belirtebilirsiniz.You can specify the subnet of an Azure virtual network (VNet) in which the pool's compute nodes should be created. Daha fazla bilgi için havuz ağ yapılandırması bölümüne bakın.See the Pool network configuration section for more information.

İşJob

İş bir görev koleksiyonudur.A job is a collection of tasks. Bir havuzdaki işlem düğümleri üzerindeki görevleri tarafından hesaplamanın nasıl gerçekleştirildiğini yönetir.It manages how computation is performed by its tasks on the compute nodes in a pool.

  • İş, çalışmanın gerçekleştirileceği havuzu belirtir.The job specifies the pool in which the work is to be run. Her iş için yeni havuz oluşturabilir veya çok sayıda iş için bir havuz kullanabilirsiniz.You can create a new pool for each job, or use one pool for many jobs. Bir iş zamanlaması ile ilişkili her iş için veya bir iş zamanlaması ile ilişkili tüm işler için havuz oluşturabilirsiniz.You can create a pool for each job that is associated with a job schedule, or for all jobs that are associated with a job schedule.

  • İsteğe bağlı bir iş önceliği belirtebilirsiniz.You can specify an optional job priority. Bir iş devam eden işlerden daha yüksek öncelikle gönderilirse yüksek önceliğe sahip işin görevleri düşük önceliğe sahip iş görevlerinin önünde kuyruğa eklenir.When a job is submitted with a higher priority than jobs that are currently in progress, the tasks for the higher-priority job are inserted into the queue ahead of tasks for the lower-priority jobs. Çalışmakta olan düşük öncelikli işlerdeki görevler engellenmez.Tasks in lower-priority jobs that are already running are not preempted.

  • İşleriniz için bazı sınırlar belirtmek üzere iş kısıtlamaları kullanabilirsiniz:You can use job constraints to specify certain limits for your jobs:

    Bir duvar saati zamanı üst sınırı ayarlayabilirsiniz; böylece bir iş belirtilen duvar saati zamanı üst sınırından daha uzun süre çalışırsa iş ve tüm görevleri sonlandırılır.You can set a maximum wallclock time, so that if a job runs for longer than the maximum wallclock time that is specified, the job and all of its tasks are terminated.

    Batch başarısız olan görevleri algılayabilir ve sonra yeniden deneyebilir.Batch can detect and then retry failed tasks. Bir görevin her zaman yeniden deneneceği veya hiçbir zaman yeniden denenmeyeceği gibi kısıtlama olarak en fazla görev yeniden deneme sayısı belirtebilirsiniz.You can specify the maximum number of task retries as a constraint, including whether a task is always or never retried. Bir görevi yeniden denemek, görevin tekrar çalıştırmak için yeniden kuyruğa olduğu anlamına gelir.Retrying a task means that the task is requeued to run again.

  • İstemci uygulamanız bir işe görevler ekleyebilir ya da bir iş yöneticisi görevi belirtebilirsiniz.Your client application can add tasks to a job, or you can specify a job manager task. Bir iş yöneticisi görevi havuzdaki işlem düğümlerinden birinde çalıştırılan görevle birlikte bir iş için gereken görevleri oluşturmak üzere gerekli bilgileri içerir.A job manager task contains the information that is necessary to create the required tasks for a job, with the job manager task being run on one of the compute nodes in the pool. İş yöneticisi görevi özellikle Batch tarafından işlenir; işin oluşturulmasının hemen ardından kuyruğa alınır ve başarısız olursa yeniden başlatılır.The job manager task is handled specifically by Batch--it is queued as soon as the job is created, and is restarted if it fails. İş örneği oluşturulmadan görevleri tanımlamanın tek yolu olduğundan iş yöneticisi görevi, bir iş zamanlaması tarafından oluşturulan işler için gereklidir.A job manager task is required for jobs that are created by a job schedule because it is the only way to define the tasks before the job is instantiated.

  • Varsayılan olarak, işteki tüm görevler tamamlandığında iş etkin durumda kalır.By default, jobs remain in the active state when all tasks within the job are complete. Bu davranışı, işteki tüm görevler tamamlandığında işin otomatik olarak sonlandırılacağı şekilde değiştirebilirsiniz.You can change this behavior so that the job is automatically terminated when all tasks in the job are complete. Tüm görevleri tamamlandı durumundaysa işi otomatik olarak sonlandırmak için işin onalltaskscompleted özelliğini (Batch .net 'teonalltaskscompleted ) terminatejob 'un engellenmesi olarak ayarlayın.Set the job's onAllTasksComplete property (OnAllTasksComplete in Batch .NET) to terminatejob to automatically terminate the job when all of its tasks are in the completed state.

    Batch hizmeti, tüm görevlerinin tamamlanması için görev içermeyen bir işi kabul eder.The Batch service considers a job with no tasks to have all of its tasks completed. Bu nedenle, bu seçenek genellikle iş yöneticisi görevi ile kullanılır.Therefore, this option is most commonly used with a job manager task. İş yöneticisi olmadan otomatik iş sonlandırmayı kullanmak istiyorsanız başlangıçta yeni işin onAllTasksComplete özelliğini noaction olarak ayarlamanız ve işe görev eklemeyi bitirdiğinizde bu ayarı terminatejob olarak değiştirmeniz gerekir.If you want to use automatic job termination without a job manager, you should initially set a new job's onAllTasksComplete property to noaction, then set it to terminatejob only after you've finished adding tasks to the job.

İş önceliğiJob priority

Batch’de oluşturduğunuz işlere öncelik atayabilirsiniz.You can assign a priority to jobs that you create in Batch. Batch hizmeti bir hesaptaki iş zamanlama sırasını belirlemek üzere işin öncelik değerini kullanır (zamanlanmış iş ile karıştırılmamalıdır).The Batch service uses the priority value of the job to determine the order of job scheduling within an account (this is not to be confused with a scheduled job). Öncelik değeri, -1000 en düşük öncelik ve 1000 en yüksek öncelik olmak üzere, -1000 ile 1000 aralığındadır.The priority values range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest. Bir işin önceliğini güncelleştirmek için, bir iş işleminin özelliklerini güncelleştirme (Batch REST) ya da Cloudjob. Priority özelliğini (Batch .net) çağırın.To update the priority of a job, call the Update the properties of a job operation (Batch REST), or modify the CloudJob.Priority property (Batch .NET).

Aynı hesapta, yüksek öncelikli işlerin düşük öncelikli işlere göre zamanlama üstünlüğü vardır.Within the same account, higher-priority jobs have scheduling precedence over lower-priority jobs. Bir hesaptaki yüksek öncelik değerine sahip iş farklı bir hesaptaki düşük öncelik değerine sahip başka bir işe karşı zamanlama üstünlüğüne sahip değildir.A job with a higher-priority value in one account does not have scheduling precedence over another job with a lower-priority value in a different account.

Havuzlardaki iş zamanlaması bağımsızdır.Job scheduling across pools is independent. Farklı havuzlar arasında, ilişkili havuzunda boşta düğüm eksikliği olması durumunda yüksek öncelikli işin önce zamanlanacağı kesin değildir.Between different pools, it is not guaranteed that a higher-priority job is scheduled first if its associated pool is short of idle nodes. Aynı havuzda, aynı öncelik değerine sahip işlerin zamanlanma şansı eşittir.In the same pool, jobs with the same priority level have an equal chance of being scheduled.

Zamanlanan işlerScheduled jobs

İş zamanlamaları , Batch hizmeti içinde yinelenen işler oluşturmanızı sağlar.Job schedules enable you to create recurring jobs within the Batch service. Bir iş zamanlaması işlerin ne zaman çalıştırılacağını belirtir ve çalıştırılacak işlerin özelliklerini içerir.A job schedule specifies when to run jobs and includes the specifications for the jobs to be run. Zamanlama süresini (zamanlamanın ne kadar süreyle ve ne zaman etkin olacağını) ve bu zamanlanan sürede işlerin ne sıklıkta oluşturulacağını belirtebilirsiniz.You can specify the duration of the schedule--how long and when the schedule is in effect--and how frequently jobs are created during the scheduled period.

GörevTask

Görev bir işle ilişkili hesaplama birimidir.A task is a unit of computation that is associated with a job. Bir düğüm üzerinde çalışır.It runs on a node. Görevler yürütülmek için bir düğüme atanır veya bir düğüm serbest kalana kadar kuyruğa alınır.Tasks are assigned to a node for execution, or are queued until a node becomes free. Kısacası görev, bitmesi gereken çalışmayı gerçekleştirmek üzere bir veya daha fazla program ya da komut dosyasını bir işlem düğümü üzerinde çalıştırır.Put simply, a task runs one or more programs or scripts on a compute node to perform the work you need done.

Bir görev oluşturduğunuzda aşağıdakileri belirtebilirsiniz:When you create a task, you can specify:

  • Görevin komut satırı.The command line for the task. Uygulamanızı veya komut dosyanızı işlem düğümü üzerinde çalıştıran komut satırıdır.This is the command line that runs your application or script on the compute node.

    Komut satırının bir kabukta çalıştırılmadığını unutmamak önemlidir.It is important to note that the command line does not run under a shell. Bu nedenle, ortam değişkeni genişletmesi gibi kabuk özelliklerinden (buna PATH dahildir) yerel olarak yararlanamaz.Therefore, it cannot natively take advantage of shell features like environment variable expansion (this includes the PATH). Bu özelliklerden yararlanmak için kabuğu komut satırında çağırmanız gerekir (örneğin Windows düğümlerinde cmd.exe veya Linux'ta /bin/sh başlatarak):To take advantage of such features, you must invoke the shell in the command line--for example, by launching cmd.exe on Windows nodes or /bin/sh on Linux:

    cmd /c MyTaskApplication.exe %MY_ENV_VAR%

    /bin/sh -c MyTaskApplication $MY_ENV_VAR

    Görevlerinizin, düğümün PATH veya başvuru ortamı değişkenlerinde olmayan bir uygulama ya da komut dosyasını çalıştırması gerekiyorsa kabuğu görev komut satırında açıkça çağırın.If your tasks need to run an application or script that is not in the node's PATH or reference environment variables, invoke the shell explicitly in the task command line.

  • İşlenecek verileri içeren kaynak dosyalar.Resource files that contain the data to be processed. Bu dosyalar görevin komut satırı yürütülmeden önce bir Azure Depolama hesabındaki Blob depolamadan düğüme otomatik olarak kopyalanır.These files are automatically copied to the node from Blob storage in an Azure Storage account before the task's command line is executed. Daha fazla bilgi için Başlangıç görevi ve Dosyalar ve dizinler bölümlerine bakın.For more information, see the sections Start task and Files and directories.

  • Uygulamanızın gerektirdiği ortam değişkenleri.The environment variables that are required by your application. Daha fazla bilgi için Görevler için ortam ayarları bölümüne bakın.For more information, see the Environment settings for tasks section.

  • Görev yürütülürken tabi olunan kısıtlamalar.The constraints under which the task should execute. Örneğin, görevin çalışmasına izin verilen en uzun süre, başarısız olan bir görevin en fazla yeniden deneme sayısı ve görevin çalışma dizinindeki dosyaların elde tutulduğu en uzun süre kısıtlamalardan bazılarıdır.For example, constraints include the maximum time that the task is allowed to run, the maximum number of times a failed task should be retried, and the maximum time that files in the task's working directory are retained.

  • Görevin çalışmak üzere zamanlandığı işlem düğümünü dağıtmak için kullanılan uygulama paketleri.Application packages to deploy to the compute node on which the task is scheduled to run. Uygulama paketleri, görevlerinizin çalıştırdığı uygulamaların dağıtımını ve sürüm oluşturma işlemlerini basitleştirir.Application packages provide simplified deployment and versioning of the applications that your tasks run. Görev düzeyinde uygulama paketleri, özellikle paylaşılan havuz ortamlarında çok yararlıdır. Bu ortamlarda, tek havuzda farklı işler çalıştırılır ve bir iş tamamlandığında havuz silinmez.Task-level application packages are especially useful in shared-pool environments, where different jobs are run on one pool, and the pool is not deleted when a job is completed. İşinizin havuzdaki görevleri, düğümlerinden azsa uygulamanız yalnızca görevleri çalıştıran düğümlere dağıtıldığı için görev uygulama paketleri veri aktarımını azaltabilir.If your job has fewer tasks than nodes in the pool, task application packages can minimize data transfer since your application is deployed only to the nodes that run tasks.

  • Düğümdeki görevin çalıştığı Docker kapsayıcısını oluşturmak için Docker Hub içinde bir kapsayıcı görüntüsü başvurusu veya özel kayıt defteri ile ek ayarlar.A container image reference in Docker Hub or a private registry and additional settings to create a Docker container in which the task runs on the node. Bu bilgileri yalnızca havuz kapsayıcı yapılandırmasıyla kurulduysa belirtmeniz gerekir.You only specify this information if the pool is set up with a container configuration.

Not

Görevin ne zaman tamamlandığını, ne zaman tamamlanana kadar en fazla yaşam süresi 180 gündür.The maximum lifetime of a task, from when it is added to the job to when it completes, is 180 days. Tamamlanan görevler 7 gün boyunca devam ederse; Maksimum yaşam süresi içinde tamamlanmayan görevlere yönelik verilere erişilemiyor.Completed tasks persist for 7 days; data for tasks not completed within the maximum lifetime is not accessible.

Bir düğümde hesaplama yapmak üzere tanımladığınız görevlere ek olarak, aşağıdaki özel görevler de Batch hizmeti tarafından sağlanır:In addition to tasks you define to perform computation on a node, the following special tasks are also provided by the Batch service:

Başlangıç göreviStart task

Başlangıç görevini bir havuz ile ilişkilendirerek düğümlerinin işletim sistemi ortamını hazırlayabilirsiniz.By associating a start task with a pool, you can prepare the operating environment of its nodes. Örneğin, görevlerinizin çalıştıracağı uygulamaları yükleme veya arka plan işlemlerini başlatma gibi eylemleri gerçekleştirebilirsiniz.For example, you can perform actions such as installing the applications that your tasks run, or starting background processes. Başlangıç görevi, havuzda kaldığı sürece düğümün havuza ilk eklendiği ve yeniden başlatıldığı ya da görüntüsünün yeniden oluşturulduğu zaman dahil olmak üzere, bir düğüm her başlatıldığında çalışır.The start task runs every time a node starts, for as long as it remains in the pool--including when the node is first added to the pool and when it is restarted or reimaged.

Başlangıç görevinin birincil avantajı, bir işlem düğümünü yapılandırmak ve görev yürütmede gereken uygulamaları yüklemek için gerekli tüm bilgileri içerebilmesidir.A primary benefit of the start task is that it can contain all the information necessary to configure a compute node and install the applications required for task execution. Bu nedenle bir havuzdaki düğüm sayısını artırmak, yeni bir hedef düğüm sayısı belirtmek kadar kolaydır.Therefore, increasing the number of nodes in a pool is as simple as specifying the new target node count. Başlangıç görevi, Batch hizmetine yeni düğümleri yapılandırmak ve onları görev kabul etmeye hazır hale getirmek için gerekli olan bilgileri sunar.The start task provides the Batch service the information needed to configure the new nodes and get them ready for accepting tasks.

Herhangi bir Azure Batch görevinde olduğu gibi, Azure Storage'da kaynak dosyalarının bir listesini de yürütülecek bir komut satırına belirtebilirsiniz.As with any Azure Batch task, you can specify a list of resource files in Azure Storage, in addition to a command line to be executed. Batch hizmeti ilk olarak kaynak dosyaları düğümden Azure Depolama’ya kopyalar ve ardından komut satırını çalıştırır.The Batch service first copies the resource files to the node from Azure Storage, and then runs the command line. Bir havuz başlangıç görevinde dosya listesi genellikle görev uygulamasını ve onun bağımlılıklarını içerir.For a pool start task, the file list typically contains the task application and its dependencies.

Ancak başlangıç görevi, işlem düğümü üzerinde çalışan tüm görevler tarafından kullanılacak başvuru verilerini de içerebilir.However, the start task could also include reference data to be used by all tasks that are running on the compute node. Örneğin, bir başlangıç görevinin komut satırı, uygulama dosyalarını (kaynak dosya olarak belirtilir ve düğüme indirilir) başlangıç görevinin çalışma dizinindenpaylaşılan klasöre kopyalamak üzere bir robocopy işlemi gerçekleştirebilir ve ardından bir MSI ya da setup.exe çalıştırabilir.For example, a start task's command line could perform a robocopy operation to copy application files (which were specified as resource files and downloaded to the node) from the start task's working directory to the shared folder, and then run an MSI or setup.exe.

Bu, düğümün görevlere atanmak üzere hazır olduğunu düşünmeden önce başlangıç görevinin tamamlanmasını beklemek amacıyla Batch hizmeti için genelde istenen bir durumdur, ancak bunu yapılandırabilirsiniz.It is typically desirable for the Batch service to wait for the start task to complete before considering the node ready to be assigned tasks, but you can configure this.

Bir işlem düğümünde başlangıç görevi başarısız olursa, düğümün durumu hatayı yansıtacak şekilde güncelleştirilir ve düğüm hiçbir göreve atanmaz.If a start task fails on a compute node, then the state of the node is updated to reflect the failure, and the node is not assigned any tasks. Bir başlangıç görevi, depolamadan kaynak dosya kopyalamada bir sorun olması ya da komut satırı tarafından yürütülen işlemin sıfır olmayan bir çıkış kodu döndürmesi durumunda başarısız olabilir.A start task can fail if there is an issue copying its resource files from storage, or if the process executed by its command line returns a nonzero exit code.

Mevcut bir havuz için başlangıç görevi ekler veya güncelleştirirseniz, başlangıç görevinin düğümlere uygulanması için işlem düğümlerini yeniden başlatmanız gerekir.If you add or update the start task for an existing pool, you must reboot its compute nodes for the start task to be applied to the nodes.

Not

Batch, kaynak dosyalarını ve ortam değişkenlerini içeren başlangıç görevinin toplam boyutunu sınırlar.Batch limits the total size of a start task, which includes resource files and environment variables. Bir başlangıç görevinin boyutunu azaltmanız gerekirse aşağıdaki iki yaklaşımdan birini kullanabilirsiniz:If you need to reduce the size of a start task, you can use one of two approaches:

  1. Uygulamaları veya verileri Batch havuzunuzdaki tüm düğümlere dağıtmak için uygulama paketlerini kullanabilirsiniz.You can use application packages to distribute applications or data across each node in your Batch pool. Uygulama paketleri hakkında daha fazla bilgi için bkz. Batch uygulama paketleriyle işlem düğümlerine uygulama dağıtımı.For more information about application packages, see Deploy applications to compute nodes with Batch application packages.

  2. El ile uygulama dosyalarınızı içeren bir sıkıştırılmış arşiv oluşturabilirsiniz.You can manually create a zipped archive containing your applications files. Sıkıştırılmış arşivinizi Azure Depolama hesabına blob olarak karşıya yükleyin.Upload your zipped archive to Azure Storage as a blob. Sıkıştırılmış arşivi başlangıç göreviniz için kaynak dosyası olarak belirleyin.Specify the zipped archive as a resource file for your start task. Başlangıç göreviniz için komut satırını çalıştırmadan önce sıkıştırılmış arşivi komut satırından açın.Before you run the command line for your start task, unzip the archive from the command line.

    Sıkıştırılmış arşivi açmak için istediğiniz arşivleme aracını kullanabilirsiniz.To unzip the archive, you can use the archiving tool of your choice. Sıkıştırılmış arşivi açmak için kullandığınız aracı, başlangıç görevinin kaynak dosyalarına eklemeniz gerekir.You will need to include the tool that you use to unzip the archive as a resource file for the start task.

İş yöneticisi göreviJob manager task

İş yürütmeyi denetlemek ve/veya izlemek için genellikle bir iş yöneticisi görevi kullanırsınız (örneğin, bir işin görevlerini oluşturmak ve göndermek, çalıştırılacak ek görevleri belirlemek ve çalışmanın ne zaman tamamlandığını belirlemek için).You typically use a job manager task to control and/or monitor job execution--for example, to create and submit the tasks for a job, determine additional tasks to run, and determine when work is complete. Ancak, bir iş yöneticisi görevi bu etkinliklerle sınırlı değildir.However, a job manager task is not restricted to these activities. İş için gerekli olan tüm eylemleri gerçekleştirebilen tam kapsamlı bir görevdir.It is a fully fledged task that can perform any actions that are required for the job. Örneğin, bir iş yöneticisi görevi parametre olarak belirtilen bir dosyayı indirebilir, dosyanın içeriğini çözümleyebilir ve bu içeriğe göre ek görevler gönderebilir.For example, a job manager task might download a file that is specified as a parameter, analyze the contents of that file, and submit additional tasks based on those contents.

Bir iş yöneticisi görevi diğer tüm görevlerden önce başlatılır.A job manager task is started before all other tasks. Aşağıdaki özellikleri sağlar:It provides the following features:

  • İş oluşturulduğunda, Batch hizmeti tarafından bir görev olarak otomatik olarak gönderilir.It is automatically submitted as a task by the Batch service when the job is created.
  • Bir işte diğer görevlerden önce yürütülecek şekilde zamanlanır.It is scheduled to execute before the other tasks in a job.
  • Havuzun boyutu küçültülürken bu görevin ilişkili düğümü havuzdan en son kaldırılacak düğümdür.Its associated node is the last to be removed from a pool when the pool is being downsized.
  • Görevin sonlandırılması, işteki tüm görevlerin sonlandırılmasına bağlıdır.Its termination can be tied to the termination of all tasks in the job.
  • Yeniden başlatılması gerektiğinde iş yöneticisi görevine en yüksek öncelik verilir.A job manager task is given the highest priority when it needs to be restarted. Boş bir düğüm yoksa Batch hizmeti, iş yöneticisi görevinin çalışması için yer açmak amacıyla havuzundaki çalışan diğer görevlerden birini sonlandırabilir.If an idle node is not available, the Batch service might terminate one of the other running tasks in the pool to make room for the job manager task to run.
  • Bir işteki iş yöneticisi görevinin, diğer işlerin görevleri üzerinde önceliği yoktur.A job manager task in one job does not have priority over the tasks of other jobs. İşlerde, yalnızca iş düzeyinde öncelikler gözetilir.Across jobs, only job-level priorities are observed.

İş hazırlama ve bırakma görevleriJob preparation and release tasks

Batch, iş öncesi yürütme kurulumu için iş hazırlama görevleri sağlar.Batch provides job preparation tasks for pre-job execution setup. İş bırakma görevleri iş sonrası bakım ve temizlemeye yöneliktir.Job release tasks are for post-job maintenance or cleanup.

  • İş hazırlama görevi: İş hazırlama görevi, diğer iş görevlerinden herhangi biri yürütülmeden önce, görevleri çalıştırmak için zamanlanan tüm işlem düğümlerinde çalışır.Job preparation task: A job preparation task runs on all compute nodes that are scheduled to run tasks, before any of the other job tasks are executed. Örneğin, tüm görevler tarafından paylaşılan ancak işe özel olan verileri kopyalamak için iş hazırlama görevini kullanabilirsiniz.You can use a job preparation task to copy data that is shared by all tasks, but is unique to the job, for example.
  • İş bırakma görevi: Bir iş tamamlandığında iş bırakma görevi, havuzun en az bir görev yürütmüş her düğümünde çalıştırılır.Job release task: When a job has completed, a job release task runs on each node in the pool that executed at least one task. Örneğin, iş hazırlama görevi tarafından kopyalanan verileri silmek ya da tanılama günlük verilerini sıkıştırmak veya karşıya yüklemek için iş bırakma görevini kullanabilirsiniz.You can use a job release task to delete data that is copied by the job preparation task, or to compress and upload diagnostic log data, for example.

Hem iş hazırlama hem de bırakma görevleri, görev çağrıldığında çalıştırılacak bir komut satırı belirtmenize imkan tanır.Both job preparation and release tasks allow you to specify a command line to run when the task is invoked. Bunlar dosya indirme, yükseltilmiş yürütme, özel ortam değişkenleri, en uzun yürütme süresi, yeniden deneme sayısı ve dosyayı elde tutma süresi gibi özellikler sağlar.They offer features like file download, elevated execution, custom environment variables, maximum execution duration, retry count, and file retention time.

İş hazırlama ve bırakma görevleri hakkında daha fazla bilgi için bkz. Azure Batch işlem düğümlerinde iş hazırlama ve tamamlama görevlerini çalıştırma.For more information on job preparation and release tasks, see Run job preparation and completion tasks on Azure Batch compute nodes.

Çok örnekli görevMulti-instance task

Çok örnekli görev aynı anda birden fazla işlem düğümü üzerinde çalışacak şekilde yapılandırılmış bir görevdir.A multi-instance task is a task that is configured to run on more than one compute node simultaneously. Çok örnekli görevlerle, bir grup işlem düğümünün tek bir iş yükünü işlemek üzere bir arada ayrılmasını gerektiren yüksek performanslı bilgi işlem senaryolarına olanak sağlayabilirsiniz (İleti Geçirme Arabirimi (MPI) gibi).With multi-instance tasks, you can enable high-performance computing scenarios that require a group of compute nodes that are allocated together to process a single workload (like Message Passing Interface (MPI)).

Batch .NET kitaplığını kullanarak MPI işlerini Batch’de çalıştırma hakkında ayrıntılı bilgi için bkz. Azure Batch’de İleti Geçirme Arabirimi (MPI) uygulamalarını çalıştırmak için çok örnekli görevleri kullanma.For a detailed discussion on running MPI jobs in Batch by using the Batch .NET library, check out Use multi-instance tasks to run Message Passing Interface (MPI) applications in Azure Batch.

Görev bağımlılıklarıTask dependencies

Adından da anlaşılacağı gibi görev bağımlılıkları, bir görevin yürütülmesinin diğer görevlerin tamamlanmasına bağlı olduğunu belirtmenizi sağlar.Task dependencies, as the name implies, allow you to specify that a task depends on the completion of other tasks before its execution. Bu özellik “yukarı akış” görevinin çıktısını kullanan bir “aşağı akış” görevi durumları ya da bir yukarı akış görevi, aşağı akış görevi tarafından istenen bazı başlatma işlemlerini gerçekleştirdiğinde destek sağlar.This feature provides support for situations in which a "downstream" task consumes the output of an "upstream" task--or when an upstream task performs some initialization that is required by a downstream task. Bu özelliği kullanmak için önce Batch işinizde görev bağımlılıklarını etkinleştirmelisiniz.To use this feature, you must first enable task dependencies on your Batch job. Daha sonra, başka bir (veya daha fazla diğer) bağımlı olan her görev için, görevin bağımlı olduğu görevleri belirlersiniz.Then, for each task that depends on another (or many others), you specify the tasks that task depends on.

Görev bağımlılıkları ile aşağıdaki gibi senaryoları yapılandırabilirsiniz:With task dependencies, you can configure scenarios like the following:

  • görevB görevA ’ya bağlıdır (görevB, görevA tamamlanana kadar yürütülmeye başlamaz).taskB depends on taskA (taskB will not begin execution until taskA has completed).
  • görevC hem görevA hem de görevB ’ye bağlıdır.taskC depends on both taskA and taskB.
  • görevD yürütülmeden önce bir dizi göreve (örneğin görev 1 ile 10 arası) bağlıdır.taskD depends on a range of tasks, such as tasks 1 through 10, before it executes.

Bu özellik hakkında daha ayrıntılı bilgi için Azure-Batch-Samples GitHub deposundaki Azure Batch ve taskdependencies kod örneğindeki görev bağımlılıklarını inceleyin.Check out Task dependencies in Azure Batch and the TaskDependencies code sample in the azure-batch-samples GitHub repository for more in-depth details on this feature.

Görevler için ortam ayarlarıEnvironment settings for tasks

Batch hizmeti tarafından yürütülen her görevin, işlem düğümleri üzerinde ayarladığı ortam değişkenlerine erişimi vardır.Each task executed by the Batch service has access to environment variables that it sets on compute nodes. Bu, Batch hizmeti tarafından tanımlanan ortam değişkenlerini (hizmet tanımlı) ve görevleriniz için tanımlayabileceğiniz özel ortam değişkenlerini içerir.This includes environment variables defined by the Batch service (service-defined) and custom environment variables that you can define for your tasks. Görevleriniz tarafından yürütülen uygulamalar ve komut dosyaları yürütme sırasında bu ortam değişkenlerine erişebilir.The applications and scripts your tasks execute have access to these environment variables during execution.

Bu varlıkların ortam ayarları özelliğini doldurarak görev ya da iş düzeyinde özel ortam değişkenleri ayarlayabilirsiniz.You can set custom environment variables at the task or job level by populating the environment settings property for these entities. Örneğin, Batch .NET içindeki bir iş işlemine görev ekleme (Batch REST API) veya Cloudtask. EnvironmentSettings ve Cloudjob. commonenvironmentsettings özelliklerine bakın.For example, see the Add a task to a job operation (Batch REST API), or the CloudTask.EnvironmentSettings and CloudJob.CommonEnvironmentSettings properties in Batch .NET.

İstemci uygulamanız veya hizmetiniz bir görevin ortam değişkenlerini (toplu REST) veya Cloudtask. EnvironmentSettings özelliğine (Batch .net) erişerek, hem hizmet tanımlı hem de özel olarak elde edebilir.Your client application or service can obtain a task's environment variables, both service-defined and custom, by using the Get information about a task operation (Batch REST) or by accessing the CloudTask.EnvironmentSettings property (Batch .NET). Bir işlem düğümünde yürütülen işlemler bu ve düğümdeki diğer ortam değişkenlerine erişebilir, örneğin bilinen bir %VARIABLE_NAME% (Windows) veya $VARIABLE_NAME (Linux) söz dizimini kullanarak.Processes executing on a compute node can access these and other environment variables on the node, for example, by using the familiar %VARIABLE_NAME% (Windows) or $VARIABLE_NAME (Linux) syntax.

İşlem düğümü ortam değişkenlerinde, hizmet tarafından tanımlanan tüm ortam değişkenlerinin tam listesini bulabilirsiniz.You can find a full list of all service-defined environment variables in Compute node environment variables.

Dosyalar ve dizinlerFiles and directories

Her görev, altında sıfır veya daha fazla dosya ve dizin oluşturduğu bir çalışma dizinine sahiptir.Each task has a working directory under which it creates zero or more files and directories. Bu çalışma dizini, görev tarafından çalıştırılan programı, işlediği verileri ve gerçekleştirdiği işlemin çıktısını depolamak için kullanılabilir.This working directory can be used for storing the program that is run by the task, the data that it processes, and the output of the processing it performs. Bir görevin tüm dosyaları ve dizinleri görev kullanıcısına aittir.All files and directories of a task are owned by the task user.

Batch hizmeti bir düğümdeki dosya sisteminin bir bölümünü kök dizin olarak kullanıma sunar.The Batch service exposes a portion of the file system on a node as the root directory. Görevler AZ_BATCH_NODE_ROOT_DIR ortam değişkenine başvurarak kök dizine erişebilir.Tasks can access the root directory by referencing the AZ_BATCH_NODE_ROOT_DIR environment variable. Ortam değişkenlerini kullanma hakkında daha fazla bilgi için bkz. Görevler için ortam ayarları.For more information about using environment variables, see Environment settings for tasks.

Kök dizin aşağıdaki dizin yapısını içerir:The root directory contains the following directory structure:

İşlem düğümü dizin yapısı

  • uygulamalar: işlem düğümünde yüklü olan uygulama paketlerinin ayrıntıları hakkında bilgiler içerir.applications: Contains information about the details of application packages installed on the compute node. Görevler AZ_BATCH_APP_PACKAGE ortam değişkenine başvurarak bu dizine erişebilir.Tasks can access this directory by referencing the AZ_BATCH_APP_PACKAGE environment variable.

  • fstakal: Dizin, bir işlem düğümüne bağlı herhangi bir dosya sistemini içerir.fsmounts: The directory contains any file systems that are mounted on a compute node. Görevler AZ_BATCH_NODE_MOUNTS_DIR ortam değişkenine başvurarak bu dizine erişebilir.Tasks can access this directory by referencing the AZ_BATCH_NODE_MOUNTS_DIR environment variable. Daha fazla bilgi için bkz. bir Batch havuzunda sanal dosya sistemi bağlama.For more information, see Mount a virtual file system on a Batch pool.

  • paylaşılan: Bu dizin, düğüm üzerinde çalışan tüm görevler için okuma/yazma erişimi sağlar.shared: This directory provides read/write access to all tasks that run on a node. Düğüm üzerinde çalışan herhangi bir görev bu dizinde dosya oluşturabilir, okuyabilir, güncelleştirebilir ve silebilir.Any task that runs on the node can create, read, update, and delete files in this directory. Görevler AZ_BATCH_NODE_SHARED_DIR ortam değişkenine başvurarak bu dizine erişebilir.Tasks can access this directory by referencing the AZ_BATCH_NODE_SHARED_DIR environment variable.

  • başlangıç: Bu dizin, bir başlangıç görevi tarafından çalışma dizini olarak kullanılır.startup: This directory is used by a start task as its working directory. Başlangıç görevi tarafından düğüme indirilen tüm dosyalar buraya depolanır.All of the files that are downloaded to the node by the start task are stored here. Başlangıç görevleri bu dizin altında dosya oluşturabilir, okuyabilir, güncelleştirebilir ve silebilir.The start task can create, read, update, and delete files under this directory. Görevler AZ_BATCH_NODE_STARTUP_DIR ortam değişkenine başvurarak bu dizine erişebilir.Tasks can access this directory by referencing the AZ_BATCH_NODE_STARTUP_DIR environment variable.

  • geçici: Bu dizin iç amaçlar içindir.volatile: This directory is for internal purposes. Bu dizindeki dosyaların veya dizinin kendisinin gelecekte mevcut olacağı garanti yoktur.There's no guarantee that any files in this directory or that the directory itself will exist in the future.

  • WORKITEMS: Bu dizin, işlem düğümündeki işlerin ve görevlerinin dizinlerini içerir.workitems: This directory contains the directories for jobs and their tasks on the compute node.

  • Görevler: workitems dizininde, düğüm üzerinde çalışan her görev için bir dizin oluşturulur.Tasks: Within the workitems directory, a directory is created for each task that runs on the node. AZ_BATCH_TASK_DIR ortam değişkenine başvurarak erişilir.It's accessed by referencing the AZ_BATCH_TASK_DIR environment variable.

    Her bir görev dizininde Batch hizmeti, bir çalışma dizini (wd) oluşturur. Dizinin benzersiz yolu AZ_BATCH_TASK_WORKING_DIR ortam değişkeni tarafından belirtilir.Within each task directory, the Batch service creates a working directory (wd) whose unique path is specified by the AZ_BATCH_TASK_WORKING_DIR environment variable. Bu dizin göreve okuma/yazma erişimi sağlar.This directory provides read/write access to the task. Görev bu dizin altında dosya oluşturabilir, okuyabilir, güncelleştirebilir ve silebilir.The task can create, read, update, and delete files under this directory. Bu dizin, görev için belirtilen RetentionTime kısıtlamasına göre tutulur.This directory is retained based on the RetentionTime constraint that is specified for the task.

    stdout.txt ve stderr.txt: Bu dosyalar görevin yürütülmesi sırasında görev klasörüne yazılır.stdout.txt and stderr.txt: These files are written to the task folder during the execution of the task.

Önemli

Bir düğüm havuzdan kaldırıldığında düğümde depolanan dosyaların tümü kaldırılır.When a node is removed from the pool, all of the files that are stored on the node are removed.

Uygulama paketleriApplication packages

Uygulama paketleri özelliği kolay uygulama yönetimi ve havuzlarınızdaki işlem düğümlerine kolay uygulama dağıtımı sağlar.The application packages feature provides easy management and deployment of applications to the compute nodes in your pools. Görevleriniz tarafından çalıştırılan uygulamaların birden fazla sürümünü (ikili dosyalar ve destek dosyalarıyla birlikte) kolayca karşıya yükleyebilir ve yönetebilirsiniz.You can upload and manage multiple versions of the applications run by your tasks, including their binaries and support files. Sonra bu uygulamalardan bir ya da daha fazlasını havuzunuzdaki işlem düğümlerine otomatik olarak dağıtabilirsiniz.Then you can automatically deploy one or more of these applications to the compute nodes in your pool.

Uygulama paketlerini havuz ve görev düzeyinde belirtebilirsiniz.You can specify application packages at the pool and task level. Havuz uygulama paketleri belirttiğinizde uygulama, havuzdaki her düğüme dağıtılır.When you specify pool application packages, the application is deployed to every node in the pool. Görev uygulama paketlerini belirttiğinizde uygulama, görevin komut satırı çalıştırılmadan hemen önce işteki görevlerden en az birinde çalışacak şekilde zamanlanan düğümlere dağıtılır.When you specify task application packages, the application is deployed only to nodes that are scheduled to run at least one of the job's tasks, just before the task's command line is run.

Batch, uygulama paketlerinizi depolamak ve işlem düğümlerine dağıtmak amacıyla Azure Depolama ile çalışma ayrıntılarını işler, böylece hem kodunuz hem de yönetim ek yükünüz basitleştirilebilir.Batch handles the details of working with Azure Storage to store your application packages and deploy them to compute nodes, so both your code and management overhead can be simplified.

Uygulama paketi özelliği hakkında daha fazla bilgi almak için bkz. Batch uygulama paketleriyle işlem düğümlerine uygulama dağıtımı.To find out more about the application package feature, check out Deploy applications to compute nodes with Batch application packages.

Not

Mevcut bir havuza havuz uygulama paketleri eklerseniz uygulama paketlerinin düğümlere dağıtılması için işlem düğümlerini yeniden başlatmanız gerekir.If you add pool application packages to an existing pool, you must reboot its compute nodes for the application packages to be deployed to the nodes.

Havuz ve işlem düğümü ömrüPool and compute node lifetime

Azure Batch çözümünüzü tasarlarken havuzların nasıl ve ne zaman oluşturulacağı ve bu havuzlardaki işlem düğümlerinin ne kadar süre kullanımda tutulacağına ilişkin bir tasarım kararı vermeniz gerekir.When you design your Azure Batch solution, you have to make a design decision about how and when pools are created, and how long compute nodes within those pools are kept available.

Spektrumun bir ucunda, gönderdiğiniz her iş için bir havuz oluşturabilir ve görevlerin yürütülmesi biter bitmez havuzu silebilirsiniz.On one end of the spectrum, you can create a pool for each job that you submit, and delete the pool as soon as its tasks finish execution. Düğümler yalnızca gerektiğinde ayrıldığından ve boşta kalır kalmaz kapatıldığından bunun yapılması kullanımı en iyi duruma getirir.This maximizes utilization because the nodes are only allocated when needed, and shut down as soon as they're idle. Bu durum işin, düğümlerin ayrılmasını beklemesi gerektiği anlamına gelmekle birlikte, tek tek kullanılabilir, ayrılmış olmalarının ve başlangıç görevinin tamamlanmasının hemen ardından görevlerin yürütülmek üzere zamanlanacağını bilmek önemlidir.While this means that the job must wait for the nodes to be allocated, it's important to note that tasks are scheduled for execution as soon as nodes are individually available, allocated, and the start task has completed. Batch, görevler düğümlere atamadan önce havuzdaki tüm düğümlerin kullanılabilir olmasını beklemez.Batch does not wait until all nodes within a pool are available before assigning tasks to the nodes. Böylece kullanılabilir tüm düğümlerden en iyi şekilde faydalanılmasını sağlar.This ensures maximum utilization of all available nodes.

Spektrumun diğer ucunda, işlerin hemen başlatılması en yüksek önceliğe sahipse işler gönderilmeden önce bir havuz oluşturabilir ve bu havuzun düğümlerini kullanıma sunabilirsiniz.At the other end of the spectrum, if having jobs start immediately is the highest priority, you can create a pool ahead of time and make its nodes available before jobs are submitted. Bu senaryoda görevler hemen başlayabilir, ancak görevlerin atanmasını beklerken düğümler boşta kalmaya devam edebilir.In this scenario, tasks can start immediately, but nodes might sit idle while waiting for them to be assigned.

Değişken ancak devam eden bir yükü işlemek için genellikle birleştirilmiş bir yaklaşım kullanılır.A combined approach is typically used for handling a variable, but ongoing, load. Birden fazla işin gönderildiği bir havuzunuz olabilir, ancak düğüm sayısını iş yüküne uygun olarak artırabilir veya azaltabilirsiniz (aşağıdaki bölümde yer alan İşlem kaynaklarını ölçeklendirme kısmına bakın).You can have a pool that multiple jobs are submitted to, but can scale the number of nodes up or down according to the job load (see Scaling compute resources in the following section). Mevcut yüke bağlı olarak reaktif bir şekilde ya da yük öngörülebiliyorsa proaktif olarak bu işlemi yapabilirsiniz.You can do this reactively, based on current load, or proactively, if load can be predicted.

Sanal ağ ve güvenlik duvarı yapılandırmasıVirtual network (VNet) and firewall configuration

Batch'te işlem düğümlerinden oluşan bir havuz sağladığınızda, havuzu bir Azure sanal ağının alt ağı ile ilişkilendirebilirsiniz.When you provision a pool of compute nodes in Batch, you can associate the pool with a subnet of an Azure virtual network (VNet). Azure sanal ağı kullanmak için Batch istemci API'sinin Azure Active Directory (AD) kimlik doğrulamasını kullanması gerekir.To use an Azure VNet, the Batch client API must use Azure Active Directory (AD) authentication. Azure AD için Azure Batch desteği, Batch hizmeti çözümlerinin kimliğini Active Directory ile doğrulama makalesinde belirtilmiştir.Azure Batch support for Azure AD is documented in Authenticate Batch service solutions with Active Directory.

Sanal ağ gereksinimleriVNet requirements

Genel gereksinimlerGeneral requirements

  • Sanal ağın havuzunuzu oluşturmak için kullandığınız Batch hesabıyla aynı abonelikte ve bölgede olması gerekir.The VNet must be in the same subscription and region as the Batch account you use to create your pool.

  • Sanal ağı kullanan havuzda en fazla 4096 düğüm bulunabilir.The pool using the VNet can have a maximum of 4096 nodes.

  • Havuz için belirtilen alt ağda havuz için hedeflenen VM sayısına yetecek kadar atanmamış IP adresi bulunması gerekir. Başka bir deyişle bu değerin havuzun targetDedicatedNodes ve targetLowPriorityNodes özelliklerinin toplamı olması gerekir.The subnet specified for the pool must have enough unassigned IP addresses to accommodate the number of VMs targeted for the pool; that is, the sum of the targetDedicatedNodes and targetLowPriorityNodes properties of the pool. Alt ağda yeterli sayıda atanmamış IP adresi yoksa havuz işlem düğümlerini kısmen ayırır ve bir yeniden boyutlandırma hatası oluşur.If the subnet doesn't have enough unassigned IP addresses, the pool partially allocates the compute nodes, and a resize error occurs.

  • Azure Depolama uç noktanızın sanal ağınızda kullanılan özel DNS sunucuları tarafından çözümlenebilmesi gerekir.Your Azure Storage endpoint needs to be resolved by any custom DNS servers that serve your VNet. Özellikle <account>.table.core.windows.net, <account>.queue.core.windows.net ve <account>.blob.core.windows.net biçimindeki URL'ler çözümlenebilir.Specifically, URLs of the form <account>.table.core.windows.net, <account>.queue.core.windows.net, and <account>.blob.core.windows.net should be resolvable.

Batch havuzunun Sanal Makine yapılandırmasında veya Cloud Services yapılandırmasında olma durumunda göre ek sanal ağ gereksinimleri farklı olabilir.Additional VNet requirements differ, depending on whether the Batch pool is in the Virtual Machine configuration or the Cloud Services configuration. Sanal ağa yapılacak yeni havuz dağıtımları için Sanal Makine yapılandırmasının kullanılması önerilir.For new pool deployments into a VNet, the Virtual Machine configuration is recommended.

Sanal Makine yapılandırmasındaki havuzlarPools in the Virtual Machine configuration

Desteklenen ağlar - Yalnızca Azure Resource Manager tabanlı sanal ağlarSupported VNets - Azure Resource Manager-based VNets only

Alt ağ kimliği - Alt ağı Batch API'leri ile belirtirken alt ağın kaynak tanımlayıcısını kullanın.Subnet ID - When specifying the subnet using the Batch APIs, use the resource identifier of the subnet. Alt ağ tanımlayıcısı şu biçimdedir:The subnet identifier is of the form:

/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/virtualNetworks/{network}/subnets/{subnet}

İzinler - Sanal ağ aboneliği veya kaynak grubu güvenlik ilkelerinin veya kilitlerinin belirli bir kullanıcının sanal ağ yönetim izinlerini kısıtlayıp kısıtlamadığını kontrol edin.Permissions - Check whether your security policies or locks on the VNet's subscription or resource group restrict a user's permissions to manage the VNet.

Ek ağ kaynakları - Batch, sanal ağı içeren kaynak grubuna otomatik olarak ek ağ kaynakları atar.Additional networking resources - Batch automatically allocates additional networking resources in the resource group containing the VNet. Her 50 adanmış düğüm (veya her 20 düşük öncelikli düğüm) için Batch şunları atar: 1 ağ güvenlik grubu (NSG), 1 genel IP adresi ve 1 yük dengeleyici.For each 50 dedicated nodes (or each 20 low-priority nodes), Batch allocates: 1 network security group (NSG), 1 public IP address, and 1 load balancer. Bu kaynaklar, aboneliğin kaynak kotalarıyla sınırlıdır.These resources are limited by the subscription's resource quotas. Büyük havuzlar için bu kaynaklardan birinde veya daha fazlasında kota artışı istemeniz gerekebilir.For large pools you may need to request a quota increase for one or more of these resources.

Ağ güvenlik gruplarıNetwork security groups

İşlem düğümlerinde görev zamanlayabilmek için alt ağın Batch hizmetinden gelen iletişim isteklerine, Azure Depolama veya diğer kaynaklarla iletişim kurabilmek için de giden iletişim isteklerine izin vermesi gerekir.The subnet must allow inbound communication from the Batch service to be able to schedule tasks on the compute nodes, and outbound communication to communicate with Azure Storage or other resources. Batch, Sanal Makine yapılandırmasındaki havuzlar için VM'lere ekli ağ arabirimleri (NIC) düzeyinde NSG'ler ekler.For pools in the Virtual Machine configuration, Batch adds NSGs at the level of network interfaces (NICs) attached to VMs. Bu NSG'ler şu trafiğe izin vermek için gelen ve giden bağlantı kurallarını otomatik olarak yapılandırır:These NSGs automatically configure inbound and outbound rules to allow the following traffic:

  • Batch hizmet rolü IP adreslerinden 29876 ve 29877 numaralı bağlantı noktalarına gelen TCP trafiği.Inbound TCP traffic on ports 29876 and 29877 from Batch service role IP addresses.
  • Uzaktan erişime izin vermek için 22 (Linux düğümleri) veya 3389 (Windows düğümler) numaralı bağlantı noktasından gelen TCP trafiği.Inbound TCP traffic on port 22 (Linux nodes) or port 3389 (Windows nodes) to permit remote access. Linux üzerinde bazı çok örnekli görevler (MPı gibi) için, Batch işlem düğümlerini içeren alt ağdaki IP 'Ler için SSH bağlantı noktası 22 trafiğe de izin vermeniz gerekir.For certain types of multi-instance tasks on Linux (such as MPI), you will need to also allow SSH port 22 traffic for IPs in the subnet containing the Batch compute nodes.
  • Sanal ağa giden herhangi bir bağlantı noktasında giden trafik.Outbound traffic on any port to the virtual network.
  • İnternete giden herhangi bir bağlantı noktasında giden trafik.Outbound traffic on any port to the internet.

Önemli

Batch tarafından yapılandırılmış olan NSG'lerdeki gelen veya giden kurallarını değiştirirken veya yenilerini eklerken dikkatli olun.Exercise caution if you modify or add inbound or outbound rules in Batch-configured NSGs. Belirtilen alt ağdaki işlem düğümleriyle iletişim kurulması bir NSG tarafından reddedilirse Batch hizmeti, işlem düğümlerinin durumunu kullanılamıyor olarak ayarlar.If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service sets the state of the compute nodes to unusable.

Batch kendi NSG'lerini yapılandırdığından alt ağ düzeyinde NSG belirtmenize gerek yoktur.You do not need to specify NSGs at the subnet level because Batch configures its own NSGs. Ancak belirtilen alt ağ ile ilişkilendirilmiş Ağ Güvenlik Grupları (NSG) ve/veya güvenlik duvarı varsa gelen ve giden güvenlik kurallarını aşağıdaki tablolarda gösterilen şekilde yapılandırın.However, if the specified subnet has associated Network Security Groups (NSGs) and/or a firewall, configure the inbound and outbound security rules as shown in the following tables. 3389 (Windows) veya 22 (Linux) bağlantı noktasındaki gelen trafiği yalnızca dış kaynaklardan gelen havuz VM 'lerine uzaktan erişime izin vermeniz gerekiyorsa yapılandırın.Configure inbound traffic on port 3389 (Windows) or 22 (Linux) only if you need to permit remote access to the pool VMs from outside sources. Bu ayar havuz VM'lerinin kullanılabilir durumda olması için şart değildir.It is not required for the pool VMs to be usable. MPı gibi belirli çok örnekli görevleri kullanıyorsanız, Linux için 22 numaralı bağlantı noktasında sanal ağ alt ağ trafiğini etkinleştirmeniz gerektiğini unutmayın.Note that you will need to enable virtual network subnet traffic on port 22 for Linux if using certain kinds of multi-instance tasks such as MPI.

Gelen güvenlik kurallarıInbound security rules

Kaynak IP adresleriSource IP addresses Kaynak hizmet etiketiSource service tag Kaynak bağlantı noktalarıSource ports HedefDestination Hedef bağlantı noktalarıDestination ports ProtokolProtocol EylemAction
YokN/A BatchNodeManagement hizmet etiketiBatchNodeManagement Service tag * Herhangi biriAny 29876-2987729876-29877 TCPTCP AllowAllow
Gerekirse, Linux çok örnekli görevler için işlem düğümlerine ve/veya işlem düğümü alt ağına uzaktan erişim için Kullanıcı kaynak IP 'Leri.User source IPs for remotely accessing compute nodes and/or compute node subnet for Linux multi-instance tasks, if required. YokN/A * Herhangi biriAny 3389 (Windows), 22 (Linux)3389 (Windows), 22 (Linux) TCPTCP AllowAllow

Giden güvenlik kurallarıOutbound security rules

KaynakSource Kaynak bağlantı noktalarıSource ports HedefDestination Hedef hizmet etiketiDestination service tag Hedef bağlantı noktalarıDestination ports ProtokolProtocol EylemAction
Herhangi biriAny * Hizmet etiketiService tag Storage (Batch hesabınızla ve VNet ile aynı bölgede)Storage (in the same region as your Batch account and VNet) 443443 TCPTCP AllowAllow

Bulut Hizmetleri yapılandırmasındaki havuzlarPools in the Cloud Services configuration

Desteklenen sanal ağlar - Yalnızca klasik sanal ağlarSupported VNets - Classic VNets only

Alt ağ kimliği - Alt ağı Batch API'leri ile belirtirken alt ağın kaynak tanımlayıcısını kullanın.Subnet ID - When specifying the subnet using the Batch APIs, use the resource identifier of the subnet. Alt ağ tanımlayıcısı şu biçimdedir:The subnet identifier is of the form:

/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.ClassicNetwork /virtualNetworks/{network}/subnets/{subnet}

İzinler - Microsoft Azure Batch hizmet sorumlusu, belirtilen sanal ağ için Classic Virtual Machine Contributor Rol Tabanlı Erişim Denetimi (RBAC) rolüne sahip olmalıdır.Permissions - The Microsoft Azure Batch service principal must have the Classic Virtual Machine Contributor Role-Based Access Control (RBAC) role for the specified VNet.

Ağ güvenlik gruplarıNetwork security groups

İşlem düğümlerinde görev zamanlayabilmek için alt ağın Batch hizmetinden gelen iletişim isteklerine, Azure Depolama veya diğer kaynaklarla iletişim kurabilmek için de giden iletişim isteklerine izin vermesi gerekir.The subnet must allow inbound communication from the Batch service to be able to schedule tasks on the compute nodes, and outbound communication to communicate with Azure Storage or other resources.

Batch iletişimi yalnızca Batch IP adreslerinden havuz düğümlerine gelen iletişime izin verecek şekilde yapılandırdığından NSG belirtmenize gerek yoktur.You do not need to specify an NSG, because Batch configures inbound communication only from Batch IP addresses to the pool nodes. Ancak belirtilen alt ağ ile ilişkilendirilmiş NSG'ler ve/veya güvenlik duvarı varsa gelen ve giden güvenlik kurallarını aşağıdaki tablolarda gösterilen şekilde yapılandırın.However, If the specified subnet has associated NSGs and/or a firewall, configure the inbound and outbound security rules as shown in the following tables. Belirtilen alt ağdaki işlem düğümleriyle iletişim kurulması bir NSG tarafından reddedilirse Batch hizmeti, işlem düğümlerinin durumunu kullanılamıyor olarak ayarlar.If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service sets the state of the compute nodes to unusable.

Havuz düğümlerine RDP erişimine izin vermeniz gerekiyorsa, Windows için bağlantı noktası 3389 üzerinde gelen trafiği yapılandırın.Configure inbound traffic on port 3389 for Windows if you need to permit RDP access to the pool nodes. Bu ayar havuz düğümlerinin kullanılabilir durumda olması için şart değildir.It is not required for the pool nodes to be usable.

Gelen güvenlik kurallarıInbound security rules

Kaynak IP adresleriSource IP addresses Kaynak bağlantı noktalarıSource ports HedefDestination Hedef bağlantı noktalarıDestination ports ProtokolProtocol EylemAction
Herhangi biriAny

Bunun için "tümüne izin ver" izni gerekli olsa da Batch hizmeti her düğümün düzeyinde Batch harici IP adreslerini filtreleyen bir ACL kuralı uygular.Although this requires effectively "allow all", the Batch service applies an ACL rule at the level of each node that filters out all non-Batch service IP addresses.
* Herhangi biriAny 10100, 20100, 3010010100, 20100, 30100 TCPTCP AllowAllow
İşlem düğümlerine RDP erişimine izin vermek için isteğe bağlı.Optional, to allow RDP access to compute nodes. * Herhangi biriAny 33893389 TCPTCP AllowAllow

Giden güvenlik kurallarıOutbound security rules

KaynakSource Kaynak bağlantı noktalarıSource ports HedefDestination Hedef bağlantı noktalarıDestination ports ProtokolProtocol EylemAction
Herhangi biriAny * Herhangi biriAny 443443 Herhangi biriAny AllowAllow

Bir sanal ağda Batch havuzu oluşturma hakkında daha fazla bilgi için bkz. Sanal ağınızda sanal makine havuzu oluşturma.For more information about setting up a Batch pool in a VNet, see Create a pool of virtual machines with your virtual network.

İşlem kaynaklarını ölçeklendirmeScaling compute resources

Otomatik ölçeklendirme kullanarak, Batch hizmetinin, bir havuzdaki işlem düğümleri sayısını mevcut iş yüküne ve işlem senaryonuzun kaynak kullanımına göre dinamik olarak ayarlamasını sağlayabilirsiniz.With automatic scaling, you can have the Batch service dynamically adjust the number of compute nodes in a pool according to the current workload and resource usage of your compute scenario. Bu, yalnızca ihtiyacınız olan kaynakları kullanarak ve ihtiyacınız olmayanları bırakarak uygulamanızı çalıştırmaya ilişkin genel maliyeti düşürmenizi sağlar.This allows you to lower the overall cost of running your application by using only the resources you need, and releasing those you don't need.

Bir otomatik ölçeklendirme formülü yazıp bu formülü bir havuzla ilişkilendirerek otomatik ölçeklendirmeyi etkinleştirebilirsiniz.You enable automatic scaling by writing an automatic scaling formula and associating that formula with a pool. Batch hizmeti, sonraki ölçeklendirme aralığı (sizin yapılandırabileceğiniz bir aralık) için havuzdaki düğümlerin hedef sayısını belirlemek amacıyla bu formülü kullanır.The Batch service uses the formula to determine the target number of nodes in the pool for the next scaling interval (an interval that you can configure). Bir havuzu oluştururken otomatik ölçeklendirme ayarlarını belirtebilir ya da bir havuz üzerinde ölçeklendirmeyi daha sonra etkinleştirebilirsiniz.You can specify the automatic scaling settings for a pool when you create it, or enable scaling on a pool later. Ölçeklendirme özellikli bir havuz üzerinde ölçeklendirme ayarlarını da güncelleştirebilirsiniz.You can also update the scaling settings on a scaling-enabled pool.

Örnek olarak, belki de bir iş yürütülmesi için çok sayıda görev göndermeniz gerekir.As an example, perhaps a job requires that you submit a large number of tasks to be executed. Havuza, kuyruğa alınmış görevlerin mevcut sayısı ve iş içindeki görevlerin tamamlanma oranı temelinde havuzdaki düğüm sayısını ayarlayan bir ölçeklendirme formülü atayabilirsiniz.You can assign a scaling formula to the pool that adjusts the number of nodes in the pool based on the current number of queued tasks and the completion rate of the tasks in the job. Batch hizmeti düzenli aralıklarla formülü değerlendirir ve havuzu, iş yükü ile diğer formül ayarlarınız temelinde yeniden boyutlandırır.The Batch service periodically evaluates the formula and resizes the pool, based on workload and your other formula settings. Hizmet, kuyrukta çok sayıda görev olduğunda düğüm ekler, kuyrukta veya çalışan görev olmadığında ise düğümleri kaldırır.The service adds nodes as needed when there are a large number of queued tasks, and removes nodes when there are no queued or running tasks.

Ölçeklendirme formülü aşağıdaki ölçümleri temel alabilir:A scaling formula can be based on the following metrics:

  • Zaman ölçümleri belirtilen saat sayısınca beş dakikada bir toplanan istatistikleri temel alır.Time metrics are based on statistics collected every five minutes in the specified number of hours.
  • Kaynak ölçümleri CPU kullanımı, bant genişliği kullanımı, bellek kullanımı ve düğüm sayısını temel alır.Resource metrics are based on CPU usage, bandwidth usage, memory usage, and number of nodes.
  • Görev ölçümleri; Etkin (kuyruğa alınmış) Çalışıyor veya Tamamlandı gibi görev durumlarını temel alır.Task metrics are based on task state, such as Active (queued), Running, or Completed.

Otomatik ölçeklendirme bir havuzdaki işlem düğümlerinin sayısını azalttığında, azaltma işlemi sırasında çalışan görevlerin nasıl ele alınacağını göz önünde bulundurmanız gerekir.When automatic scaling decreases the number of compute nodes in a pool, you must consider how to handle tasks that are running at the time of the decrease operation. Batch bunu yapabilmek için formüllerinize dahil edebileceğiniz bir düğüm ayırmasını kaldırma seçeneği sağlar.To accommodate this, Batch provides a node deallocation option that you can include in your formulas. Örneğin, çalışmakta olan görevlerin hemen durdurulacağını, ardından başka bir düğüm üzerinde yeniden kuyruğa alınacağını veya düğüm havuzdan kaldırılmadan önce bitmesine izin verileceğini belirtebilirsiniz.For example, you can specify that running tasks are stopped immediately and then requeued for execution on another node, or allowed to finish before the node is removed from the pool.

Bir uygulamayı otomatik olarak ölçeklendirme hakkında daha fazla bilgi için bkz. Azure Batch havuzunda işlem düğümlerini otomatik olarak ölçeklendirme.For more information about automatically scaling an application, see Automatically scale compute nodes in an Azure Batch pool.

İpucu

İşlem kaynağından en iyi şekilde faydalanabilmek için işin sonundaki düğüm sayısını sıfır olarak ayarlayın ancak çalışan görevlerin bitmesine izin verin.To maximize compute resource utilization, set the target number of nodes to zero at the end of a job, but allow running tasks to finish.

Sertifikalar ile güvenlikSecurity with certificates

Bir Azure depolama hesabıanahtarı gibi, görevler için hassas bilgileri şifrelerken veya şifrelerini çözdüğünde genellikle sertifikalar kullanmanız gerekir.You typically need to use certificates when you encrypt or decrypt sensitive information for tasks, like the key for an Azure Storage account. Bunu desteklemek için düğümlere sertifikalar yükleyebilirsiniz.To support this, you can install certificates on nodes. Şifrelenmiş parolalar komut satırı parametreleri aracılığıyla düğümlere geçirilir ya da görev kaynaklarından birine eklenir ve yüklü sertifikalar bunların şifrelerini çözmek için kullanılabilir.Encrypted secrets are passed to tasks via command-line parameters or embedded in one of the task resources, and the installed certificates can be used to decrypt them.

Batch hesabına bir sertifika eklemek için sertifika ekle Işlemini (Batch REST) veya Certificateoperations. CreateCertificate yöntemini (Batch .net) kullanırsınız.You use the Add certificate operation (Batch REST) or CertificateOperations.CreateCertificate method (Batch .NET) to add a certificate to a Batch account. Sonra sertifikayı yeni ya da mevcut bir havuzla ilişkilendirebilirsiniz.You can then associate the certificate with a new or existing pool. Sertifika bir havuzla ilişkilendirildiğinde, Batch hizmeti havuzdaki her düğüme sertifikayı yükler.When a certificate is associated with a pool, the Batch service installs the certificate on each node in the pool. Batch hizmeti düğüm başlatıldığında başlangıç görevi ve iş yöneticisi görevi dahil herhangi bir görevi başlatmadan önce, uygun sertifikaları yükler.The Batch service installs the appropriate certificates when the node starts up, before launching any tasks (including the start task and job manager task).

Mevcut bir havuza sertifika eklerseniz sertifikaların düğümlere uygulanması için işlem düğümlerini yeniden başlatmanız gerekir.If you add certificates to an existing pool, you must reboot its compute nodes for the certificates to be applied to the nodes.

Hata işlemeError handling

Batch çözümündeki görev ve uygulama hatalarını işlemeyi gerekli görebilirsiniz.You might find it necessary to handle both task and application failures within your Batch solution.

Görev hatası işlemeTask failure handling

Görev hataları kategorileri şunlardır:Task failures fall into these categories:

  • Ön işleme hatalarıPre-processing failures

    Bir görev çalışmadığında ön işleme hatası belirlenir.If a task fails to start, a pre-processing error is set for the task.

    Görevin kaynak dosyalarının taşınmış olması, Storage hesabının artık kullanılmaması veya dosyaların düğüme başarıyla kopyalanmasını önleyen bir sorunla karşılaşılması durumunda ön işleme hataları oluşabilir.Pre-processing errors can occur if the task's resource files have moved, the Storage account is no longer available, or another issue was encountered that prevented the successful copying of files to the node.

  • Karşıya dosya yükleme hatalarıFile upload failures

    Bir görev için belirtilen karşıya dosya yükleme işlemi herhangi bir nedenle başarısız olursa, görev için dosya yükleme hatası belirlenir.If uploading files that are specified for a task fails for any reason, a file upload error is set for the task.

    Azure Depolama erişimi için verilen SAS geçersiz olduğunda veya yazma izni vermediğinde, depolama hesabı kullanılabilir durumda olmadığında veya dosyaların düğümden başarıyla kopyalanmasını önleyen bir sorunla karşılaşıldığında karşıya dosya yükleme hataları oluşabilir.File upload errors can occur if the SAS supplied for accessing Azure Storage is invalid or does not provide write permissions, if the storage account is no longer available, or if another issue was encountered that prevented the successful copying of files from the node.

  • Uygulama hatalarıApplication failures

    Görevin komut satırı tarafından belirtilen işlem de başarısız olabilir.The process that is specified by the task's command line can also fail. Görev tarafından yürütülen işlem sıfır olmayan çıkış kodu döndürdüğünde işlemin başarısız olduğu kabul edilir (sonraki bölümde yer alan Görev çıkış kodları kısmına bakın).The process is deemed to have failed when a nonzero exit code is returned by the process that is executed by the task (see Task exit codes in the next section).

    Uygulama hataları için Batch’i, görevi belirlenen sayıya kadar otomatik olarak yeniden deneyecek şekilde yapılandırabilirsiniz.For application failures, you can configure Batch to automatically retry the task up to a specified number of times.

  • Kısıtlama hatalarıConstraint failures

    Bir iş ya da görev için maksimum yürütme süresini belirleyen bir kısıtlama (maxWallClockTime) ayarlayabilirsiniz.You can set a constraint that specifies the maximum execution duration for a job or task, the maxWallClockTime. Bu ilerleme göstermeyen görevlerin sonlandırılması için faydalı olabilir.This can be useful for terminating tasks that fail to progress.

    Maksimum süre aşıldığında görev tamamlandı olarak işaretlenir ancak çıkış kodu 0xC000013A olarak ayarlanır ve schedulingError alanı { category:"ServerError", code="TaskEnded"} olarak işaretlenir.When the maximum amount of time has been exceeded, the task is marked as completed, but the exit code is set to 0xC000013A and the schedulingError field is marked as { category:"ServerError", code="TaskEnded"}.

Uygulama hatalarını ayıklamaDebugging application failures

  • stderr ve stdoutstderr and stdout

    Yürütme sırasında bir uygulama, sorunları gidermek için kullanabileceğiniz tanılama çıktıları üretebilir.During execution, an application might produce diagnostic output that you can use to troubleshoot issues. Önceki Dosyalar ve dizinler bölümünde belirtildiği gibi, Batch hizmeti işlem düğümündeki görev dizininde yer alan stdout.txt ve stderr.txt dosyalarına standart çıktı ve standart hata çıktısı yazar.As mentioned in the earlier section Files and directories, the Batch service writes standard output and standard error output to stdout.txt and stderr.txt files in the task directory on the compute node. Bu dosyaları indirmek için Azure portalını veya toplu SDK'lardan birini kullanabilirsiniz.You can use the Azure portal or one of the Batch SDKs to download these files. Örneğin, Batch .NET kitaplığı 'nda ComputeNode. GetNodeFile ve Cloudtask. getnodefile kullanarak bu ve diğer dosyaları sorun giderme amacıyla alabilirsiniz.For example, you can retrieve these and other files for troubleshooting purposes by using ComputeNode.GetNodeFile and CloudTask.GetNodeFile in the Batch .NET library.

  • Görev çıkış kodlarıTask exit codes

    Daha önce belirtildiği gibi, görev tarafından yürütülen işlem sıfır olmayan bir çıkış kodu döndürürse görev Batch hizmeti tarafından başarısız olarak işaretlenir.As mentioned earlier, a task is marked as failed by the Batch service if the process that is executed by the task returns a nonzero exit code. Bir görev bir işlemi yürüttüğünde Batch, görevin çıkış kodu özelliğini işlemin dönüş kodu ile doldurur.When a task executes a process, Batch populates the task's exit code property with the return code of the process. Bir görevin çıkış kodunun Batch hizmeti tarafından belirlenmediğine dikkat etmeniz önemlidir.It is important to note that a task's exit code is not determined by the Batch service. Bir görevin çıkış kodu işlemin kendisi ya da işlemin yürütüldüğü işletim sistemi tarafından belirlenir.A task's exit code is determined by the process itself or the operating system on which the process executed.

Görev hataları veya kesintilerinin sebepleriAccounting for task failures or interruptions

Görevler zaman zaman başarısız olabilir veya kesintiye uğrayabilir.Tasks might occasionally fail or be interrupted. Görevin kendisi başarısız olabilir, görevin üzerinde çalıştığı düğüm yeniden başlatılabilir ya da havuzun ayırmayı kaldırma ilkesi görevin bitmesini beklemeden düğümleri kaldırmak üzere ayarlandıysa, yeniden boyutlandırma işlemi sırasında düğüm havuzdan kaldırılabilir.The task application itself might fail, the node on which the task is running might be rebooted, or the node might be removed from the pool during a resize operation if the pool's deallocation policy is set to remove nodes immediately without waiting for tasks to finish. Her durumda, görev başka bir düğümde yürütülmek üzere Batch tarafından otomatik olarak yeniden kuyruğa alınabilir.In all cases, the task can be automatically requeued by Batch for execution on another node.

Bir görevin yanıt vermemesine veya yürütülmesi çok uzun sürmesine neden olan aralıklı bir sorun da mümkündür.It is also possible for an intermittent issue to cause a task to stop responding or take too long to execute. Bir görev için en fazla yürütme aralığını ayarlayabilirsiniz.You can set the maximum execution interval for a task. Maksimum yürütme aralığı aşılırsa Batch hizmeti görev uygulamasını kesintiye uğratır.If the maximum execution interval is exceeded, the Batch service interrupts the task application.

İşlem düğümlerine bağlanmaConnecting to compute nodes

Bir işlem düğümünde uzaktan oturum açarak ek hata ayıklama ve sorun giderme işlemlerini gerçekleştirebilirsiniz.You can perform additional debugging and troubleshooting by signing in to a compute node remotely. Windows düğümleri için bir Uzak Masaüstü Protokolü (RDP) dosyası indirmek ve Linux düğümleri için Güvenli Kabuk (SSH) bağlantı bilgilerini elde etmek üzere Azure portalını kullanabilirsiniz.You can use the Azure portal to download a Remote Desktop Protocol (RDP) file for Windows nodes and obtain Secure Shell (SSH) connection information for Linux nodes. Bu Işlemi Batch API 'Lerini kullanarak da yapabilirsiniz; Örneğin, Batch .net veya Batch Pythonile.You can also do this by using the Batch APIs--for example, with Batch .NET or Batch Python.

Önemli

RDP veya SSH aracılığıyla bir düğüme bağlanmak için düğümde bir kullanıcı oluşturmanız gerekir.To connect to a node via RDP or SSH, you must first create a user on the node. Bunu yapmak için Azure portal kullanabilir, Batch REST API kullanarak bir düğüme bir kullanıcı hesabı ekleyebilir , Batch .net 'te ComputeNode. CreateComputeNodeUser metodunu çağırabilir veya Batch Python modülündeki add_user yöntemini çağırabilirsiniz.To do this, you can use the Azure portal, add a user account to a node by using the Batch REST API, call the ComputeNode.CreateComputeNodeUser method in Batch .NET, or call the add_user method in the Batch Python module.

İşlem düğümlerini kısıtlamanız veya bu düğümlere RDP ya da SSH erişimini devre dışı bırakmanız gerekiyorsa, bkz. Azure Batch havuzunda işlem düğümlerine uzaktan erişimi yapılandırma veya devre dışı bırakma.If you need to restrict or disable RDP or SSH access to compute nodes, see Configure or disable remote access to compute nodes in an Azure Batch pool.

Sorunlu işlem düğümleriyle ilgili sorunları gidermeTroubleshooting problematic compute nodes

Bazı görevlerinizin başarısız olduğu durumlarda, Batch istemci uygulamanız ya da hizmetiniz, hatalı davranan düğümü tanımlamak üzere başarısız görevlerin meta verilerini inceleyebilir.In situations where some of your tasks are failing, your Batch client application or service can examine the metadata of the failed tasks to identify a misbehaving node. Bir havuzdaki her düğüme benzersiz bir kimlik verilir ve bir görevin çalıştığı düğüm görev meta verilerine eklenir.Each node in a pool is given a unique ID, and the node on which a task runs is included in the task metadata. Bir sorun düğümünü tanımladıktan sonra bununla birkaç eylem gerçekleştirebilirsiniz:After you've identified a problem node, you can take several actions with it:

  • Düğümü yeniden başlatma (rest | .net)Reboot the node (REST | .NET)

    Düğümü yeniden başlatmak bazen takılan veya çöken işlemler gibi görünmeyen sorunları temizleyebilir.Restarting the node can sometimes clear up latent issues like stuck or crashed processes. Havuzunuz bir başlangıç görevi kullanıyorsa ya da işiniz iş hazırlama görevi kullanıyorsa, düğüm yeniden başlatıldığında yürütülür.If your pool uses a start task or your job uses a job preparation task, they are executed when the node restarts.

  • Düğümü yeniden görüntü oluşturma (rest | .net)Reimage the node (REST | .NET)

    Bu işlem, işletim sistemini düğüme yeniden yükler.This reinstalls the operating system on the node. Düğümün yeniden başlatılmasıyla düğümün görüntüsünün yeniden oluşturulmasının ardından başlangıç görevleri ve iş hazırlama görevleri yeniden çalıştırılır.As with rebooting a node, start tasks and job preparation tasks are rerun after the node has been reimaged.

  • Düğümü havuzdan kaldırma (rest | .net)Remove the node from the pool (REST | .NET)

    Bazen düğümün havuzdan tamamen kaldırılması gereklidir.Sometimes it is necessary to completely remove the node from the pool.

  • Düğümde görev zamanlamayı devre dışı bırakma (rest | .net)Disable task scheduling on the node (REST | .NET)

    Bu, başka görev atanmayacak şekilde düğümü çevrimdışı durumuna alır, ancak düğümün çalışır durumda ve havuzda kalmasına izin verir.This effectively takes the node offline so that no further tasks are assigned to it, but allows the node to remain running and in the pool. Bu, başarısız olan görevin verilerini kaybetmeden ve düğüm, başka görev hatalarına neden olmadan hatalara ilişkin ayrıntılı araştırma gerçekleştirmenizi sağlar.This enables you to perform further investigation into the cause of the failures without losing the failed task's data, and without the node causing additional task failures. Örneğin düğümde görev zamanlamayı devre dışı bırakabilir, sonra düğümün olay günlüklerini incelemek üzere uzaktan oturum açabilir ya da başka sorun giderme işlemleri uygulayabilirsiniz.For example, you can disable task scheduling on the node, then sign in remotely to examine the node's event logs or perform other troubleshooting. Araştırmanızı bitirdikten sonra görev zamanlamayı (REST | .net) etkinleştirerek düğümü yeniden çevrimiçi duruma getirebilir veya daha önce ele alınan diğer eylemlerden birini gerçekleştirebilirsiniz.After you've finished your investigation, you can then bring the node back online by enabling task scheduling (REST | .NET), or perform one of the other actions discussed earlier.

Önemli

Bu bölümde açıklanan her bir eylemde (yeniden başlatma, yeniden görüntü oluşturma, görev zamanlamayı kaldırma ve devre dışı bırakma), eylemi gerçekleştirdiğinizde düğümde çalışmakta olan görevlerin nasıl işleneceğini belirtebilirsiniz.With each action that is described in this section--reboot, reimage, remove, and disable task scheduling--you are able to specify how tasks currently running on the node are handled when you perform the action. Örneğin, Batch .NET istemci kitaplığını kullanarak bir düğümde görev zamanlamayı devre dışı bıraktığınızda, çalışan görevleri sonlandırmayı , diğer düğümlerde zamanlamaya göre mi yeniden kuyruğa alma yoksa eylemi gerçekleştirmeden önce çalışan görevlerin tamamlanmasına Izin vermeyi (Taskcompletion) belirtmek için bir DisableComputeNodeSchedulingOption Enum değeri belirtebilirsiniz.For example, when you disable task scheduling on a node by using the Batch .NET client library, you can specify a DisableComputeNodeSchedulingOption enum value to specify whether to Terminate running tasks, Requeue them for scheduling on other nodes, or allow running tasks to complete before performing the action (TaskCompletion).

Sonraki adımlarNext steps

  • Batch çözümleri oluşturmak için kullanılabilen Batch API’leri ve araçları hakkında bilgi alın.Learn about the Batch APIs and tools available for building Batch solutions.
  • Batch .NET istemci kitaplığı veya Python kullanarak Batch özellikli bir uygulama geliştirmenin temellerini öğrenin.Learn the basics of developing a Batch-enabled application using the Batch .NET client library or Python. Bu hızlı başlangıçlar, bir iş yükünü birden fazla işlem düğümünde yürütmek üzere Batch hizmetini kullanan örnek uygulamalar konusunda size rehberlik sağlamanın yanı sıra, iş yükü dosyası hazırlama ve alma işlemleri için Azure Depolama kullanma ile ilgili bilgiler de içerir.These quickstarts guide you through a sample application that uses the Batch service to execute a workload on multiple compute nodes, and includes using Azure Storage for workload file staging and retrieval.
  • Batch çözümlerinizi geliştirirken kullanmak üzere Batch Explorer indirin ve yükleyin.Download and install Batch Explorer for use while you develop your Batch solutions. Batch Explorer; Azure uygulamalarıyla ilgili oluşturma, hata ayıklama ve izleme işlemlerinde yardımcı olabilir.Use Batch Explorer to help create, debug, and monitor Azure Batch applications.
  • Stack Overflow, Batch Community deposununyanı sıra MSDN 'deki Azure Batch Forumu gibi topluluk kaynaklarına bakın.See community resources including Stack Overflow, the Batch Community repo, and the Azure Batch forum on MSDN.