Aumentare e ridurre automaticamente le risorse del cluster HPC Pack in Azure in base al carico di lavoro del clusterAutomatically grow and shrink the HPC Pack cluster resources in Azure according to the cluster workload

Se si distribuiscono nodi "burst" di Azure nel cluster HPC Pack o si crea un cluster HPC Pack nelle macchine virtuali di Azure, può essere necessario avere a disposizione un modo per aumentare o ridurre automaticamente le risorse del cluster di Azure, ad esempio i nodi o core, in base al carico di lavoro del cluster.If you deploy Azure “burst” nodes in your HPC Pack cluster, or you create an HPC Pack cluster in Azure VMs, you may want a way to automatically grow or shrink the cluster resources such as nodes or cores according to the workload on the cluster. Ridimensionando le risorse del cluster in questo modo, è possibile usare le risorse di Azure in modo più efficiente e controllare i costi.Scaling the cluster resources in this way allows you to use your Azure resources more efficiently and control their costs.

Questo articolo illustra due modalità offerte da HPC Pack per la scalabilità automatica delle risorse di calcolo:This article shows you two ways that HPC Pack provides to autoscale compute resources:

  • Proprietà del cluster HPC Pack AutoGrowShrinkThe HPC Pack cluster property AutoGrowShrink

  • Script di HPC PowerShell AzureAutoGrowShrink.ps1The AzureAutoGrowShrink.ps1 HPC PowerShell script

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. In questo articolo viene illustrato l'utilizzo di entrambi i modelli, ma Microsoft indica che le distribuzioni più nuove utilizzano il modello di gestione delle risorse.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

Attualmente è possibile solo aumentare e ridurre automaticamente i nodi di calcolo HPC Pack che eseguono un sistema operativo Windows Server.Currently you can only automatically grow and shrink HPC Pack compute nodes that are running a Windows Server operating system.

Impostare la proprietà del cluster AutoGrowShrinkSet the AutoGrowShrink cluster property

PrerequisitiPrerequisites

  • Cluster HPC Pack 2012 R2 Update 2 o versione successiva : il nodo head del cluster può essere distribuito in locale o in una macchina virtuale di Azure.HPC Pack 2012 R2 Update 2 or later cluster - The cluster head node can be deployed either on-premises or in an Azure VM. Vedere Configurare un cluster ibrido con HPC Pack per iniziare con un nodo head locale e i nodi "burst" di Azure.See Set up a hybrid cluster with HPC Pack to get started with an on-premises head node and Azure "burst" nodes. Vedere lo script di distribuzione IaaS di HPC Pack per distribuire velocemente un cluster HPC Pack in macchine virtuali di Azure.See the HPC Pack IaaS deployment script to quickly deploy an HPC Pack cluster in Azure VMs.

  • Per un cluster con un nodo head in Azure (modello di distribuzione di Resource Manager): a partire da HPC Pack 2016, l'autenticazione del certificato in un'applicazione Azure Active Directory viene usata per aumentare o ridurre automaticamente le macchine virtuali del cluster distribuite tramite Azure Resource Manager.For a cluster with a head node in Azure (Resource Manager deployment model) - Starting in HPC Pack 2016, certificate authentication in an Azure Active Directory application is used for automatically growing and shrinking cluster VMs deployed using Azure Resource Manager. Configurare un certificato come segue:Configure a certificate as follows:

    1. Dopo la distribuzione del cluster, connettersi a un solo nodo head da desktop remoto.After cluster deployment, connect by Remote Desktop to one head node.

    2. Caricare il certificato (formato PFX con chiave privata) su ogni nodo head e installarlo in Cert:\LocalMachine\My and Cert:\LocalMachine\Root.Upload the certificate (PFX format with private key) to each head node and install to Cert:\LocalMachine\My and Cert:\LocalMachine\Root.

    3. Avviare Azure PowerShell come amministratore ed eseguire i comandi seguenti in un nodo head:Start Azure PowerShell as an administrator and run the following commands on one head node:

         cd $env:CCP_HOME\bin
      
         Login-AzureRmAccount
      

      Se l'account si trova in più di un tenant di Azure Active Directory o in più sottoscrizioni di Azure, è possibile eseguire il comando seguente per selezionare il tenant e la sottoscrizione corretti:If your account is in more than one Azure Active Directory tenant or Azure subscription, you can run the following command to select the correct tenant and subscription:

         Login-AzureRMAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
      

      Eseguire questo comando per visualizzare il tenant e la sottoscrizione attualmente selezionati:Run the following command to view the currently selected tenant and subscription:

         Get-AzureRMContext
      
    4. Eseguire lo script seguenteRun the following script

         .\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName “YourHpcPackAppName” -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
      

      dovewhere

      DisplayName: nome visualizzato dell'applicazione Azure Active.DisplayName - Azure Active Application display name. Se l'applicazione non esiste, viene creata in Azure Active Directory.If the application does not exist, it is created in Azure Active Directory.

      Home page: home page dell'applicazione.HomePage - The home page of the application. È possibile configurare un URL fittizio, come nell'esempio precedente.You can configure a dummy URL, as in the preceding example.

      IdentifierUri: identificatore dell'applicazione.IdentifierUri - Identifier of the application. È possibile configurare un URL fittizio, come nell'esempio precedente.You can configure a dummy URL, as in the preceding example.

      CertificateThumbprint: identificazione personale del certificato installato nel nodo head nel passaggio 1.CertificateThumbprint - Thumbprint of the certificate you installed on the head node in Step 1.

      TenantId: ID tenant di Azure Active Directory.TenantId - Tenant ID of your Azure Active Directory. È possibile ottenere l'ID tenant dalla pagina Proprietà del portale di Azure Active Directory.You can get the Tenant ID from the Azure Active Directory portal Properties page.

      Per altre informazioni su ConfigARMAutoGrowShrinkCert.ps1, eseguire Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed.For more details about ConfigARMAutoGrowShrinkCert.ps1, run Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed.

  • Per un cluster con un nodo head in Azure (modello di distribuzione classica) se usa lo script di distribuzione IaaS di HPC Pack per creare il cluster nel modello di distribuzione classica, abilitare la proprietà del cluster AutoGrowShrink impostando l'opzione AutoGrowShrink nel file di configurazione del cluster.For a cluster with a head node in Azure (classic deployment model) - If you use the HPC Pack IaaS deployment script to create the cluster in the classic deployment model, enable the AutoGrowShrink cluster property by setting the AutoGrowShrink option in the cluster configuration file. Per informazioni dettagliate, vedere la documentazione che accompagna il download dello script.For details, see the documentation accompanying the script download.

    In alternativa, abilitare la proprietà del cluster AutoGrowShrink dopo aver distribuito il cluster con i comandi di HPC PowerShell descritti nella sezione seguente.Alternatively, enable the AutoGrowShrink cluster property after you deploy the cluster by using HPC PowerShell commands described in the following section. Per prepararsi, completare prima i passaggi seguenti:To prepare for this, first complete the following steps:

    1. Configurare un certificato di gestione di Azure nel nodo head e nella sottoscrizione di Azure.Configure an Azure management certificate on the head node and in the Azure subscription. Per una distribuzione di prova, è possibile usare il certificato autofirmato Microsoft HPC Azure predefinito che consente di installare HPC Pack nel nodo head e quindi caricare il certificato nella sottoscrizione di Azure.For a test deployment, you can use the Default Microsoft HPC Azure self-signed certificate that HPC Pack installs on the head node, and then upload that certificate to your Azure subscription. Per le opzioni e i passaggi, vedere le informazioni aggiuntive nella libreria TechNet.For options and steps, see the TechNet Library guidance.

    2. Eseguire regedit nel nodo head, passare a HKLM\SOFTWARE\Micorsoft\HPC\IaasInfo e aggiungere un valore stringa.Run regedit on the head node, go to HKLM\SOFTWARE\Micorsoft\HPC\IaasInfo, and add a string value. Impostare il nome valore su "Identificazione personale" e dati valore sull'identificazione personale del certificato nel passaggio 1.Set the Value name to “ThumbPrint”, and Value data to the thumbprint of the certificate in Step 1.

Comandi di HPC PowerShell per impostare la proprietà AutoGrowShrinkHPC PowerShell commands to set the AutoGrowShrink property

Di seguito sono riportati i comandi di HPC PowerShell di esempio per impostare AutoGrowShrink e ottimizzare il comportamento con parametri aggiuntivi.Following are sample HPC PowerShell commands to set AutoGrowShrink and to tune its behavior with additional parameters. Vedere Parametri di AutoGrowShrink più avanti in questo articolo per l'elenco completo delle impostazioni.See AutoGrowShrink parameters later in this article for the complete list of settings.

Per eseguire questi comandi, avviare HPC PowerShell nel nodo head del cluster come amministratore.To run these commands, start HPC PowerShell on the cluster head node as an administrator.

Per abilitare la proprietà AutoGrowShrinkTo enable the AutoGrowShrink property

Set-HpcClusterProperty –EnableGrowShrink 1

Per disabilitare la proprietà AutoGrowShrinkTo disable the AutoGrowShrink property

Set-HpcClusterProperty –EnableGrowShrink 0

Per modificare l'intervallo di aumento in minutiTo change the grow interval in minutes

Set-HpcClusterProperty –GrowInterval <interval>

Per modificare l'intervallo di riduzione in minutiTo change the shrink interval in minutes

Set-HpcClusterProperty –ShrinkInterval <interval>

Per visualizzare la configurazione corrente di AutoGrowShrinkTo view the current configuration of AutoGrowShrink

Get-HpcClusterProperty –AutoGrowShrink

Per escludere i gruppi di nodi da AutoGrowShrinkTo exclude node groups from AutoGrowShrink

Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>

Nota

Questo parametro è supportato a partire da HPC Pack 2016This parameter is supported starting in HPC Pack 2016

Parametri di AutoGrowShrink AutoGrowShrink parameters

Di seguito sono riportati i parametri di AutoGrowShrink che è possibile modificare tramite il comando Set HpcClusterProperty .The following are AutoGrowShrink parameters that you can modify by using the Set-HpcClusterProperty command.

  • EnableGrowShrink: opzione per abilitare o disabilitare la proprietà AutoGrowShrink.EnableGrowShrink - Switch to enable or disable the AutoGrowShrink property.
  • ParamSweepTasksPerCore : numero di attività di sweep parametrico per l'aumento di un core.ParamSweepTasksPerCore - Number of parametric sweep tasks to grow one core. Il valore predefinito è l'aumento di un core per ogni attività.The default is to grow one core per task.

    Nota

    HPC Pack QFE KB3134307 modifica ParamSweepTasksPerCore in TasksPerResourceUnit.HPC Pack QFE KB3134307 changes ParamSweepTasksPerCore to TasksPerResourceUnit. Si basa sul tipo di risorsa del processo e può essere un nodo, un socket o un core.It is based on the job resource type and can be node, socket, or core.

  • GrowThreshold : soglia di attività in coda per attivare l'aumento automatico.GrowThreshold - Threshold of queued tasks to trigger automatic growth. Il valore predefinito è 1 e significa che se sono presenti una o più attività in coda, i nodi vengono aumentati automaticamente.The default is 1, which means that if there are 1 or more tasks in the queued state, automatically grow nodes.
  • GrowInterval : intervallo in minuti per attivare l'aumento automatico.GrowInterval - Interval in minutes to trigger automatic growth. L'intervallo predefinito è 5 minuti.The default interval is 5 minutes.
  • ShrinkInterval : intervallo in minuti per attivare la riduzione automatica.ShrinkInterval - Interval in minutes to trigger automatic shrinking. L'intervallo predefinito è 5 minuti.|The default interval is 5 minutes.|
  • ShrinkIdleTimes : numero di controlli continui da ridurre per indicare i nodi sono inattivi.ShrinkIdleTimes - Number of continuous checks to shrink to indicate the nodes are idle. Il valore predefinito è 3 volte.The default is 3 times. Ad esempio, se ShrinkInterval è di 5 minuti, HPC Pack controlla se il nodo è inattivo ogni 5 minuti.For example, if the ShrinkInterval is 5 minutes, HPC Pack checks whether the node is idle every 5 minutes. Se i nodi sono in uno stato di inattività dopo 3 controlli continui (15 minuti), HPC Pack riduce quel nodo.If the nodes are in the idle state after 3 continuous checks (15 minutes), then HPC Pack shrinks that node.
  • ExtraNodesGrowRatio -percentuale aggiuntiva di nodi da aumentare per i processi MPI (Message Passing Interface).ExtraNodesGrowRatio - Additional percentage of nodes to grow for Message Passing Interface (MPI) jobs. Il valore predefinito è 1 e significa che HPC Pack aumenta l'1% dei nodi per i processi MPI.The default value is 1, which means that HPC Pack grows nodes 1% for MPI jobs.
  • GrowByMin : opzione che indica se i criteri di aumento automatico sono basati sulle risorse minime necessarie per il processo.GrowByMin - Switch to indicate whether the autogrow policy is based on the minimum resources required for the job. Il valore predefinito è false e significa che HPC Pack aumenta i nodi per i processi in base alle risorse massime richieste per i processi.The default is false, which means that HPC Pack grows nodes for jobs based on the maximum resources required for the jobs.
  • SoaJobGrowThreshold : soglia di richieste SOA in ingresso per attivare il processo di aumento automatico.SoaJobGrowThreshold - Threshold of incoming SOA requests to trigger the automatic grow process. Il valore predefinito è 50000.The default value is 50000.

    Nota

    Questo parametro è supportato a partire da HPC Pack 2012 R2 Update 3.This parameter is supported starting in HPC Pack 2012 R2 Update 3.

  • SoaRequestsPerCore : numero di richieste SOA in ingresso per l'aumento di un core.SoaRequestsPerCore -Number of incoming SOA requests to grow one core. The default value is 20000.The default value is 20000.

    Nota

    Questo parametro è supportato a partire da HPC Pack 2012 R2 Update 3.This parameter is supported starting in HPC Pack 2012 R2 Update 3.

  • ExcludeNodeGroups: i nodi nei gruppi di nodi specificati non vengono aumentati e ridotti in automatico.ExcludeNodeGroups – Nodes in the specified node groups do not automatically grow and shrink.

    Nota

    Questo parametro è supportato a partire da HPC Pack 2016.This parameter is supported starting in HPC Pack 2016.

Esempio MPIMPI example

Per impostazione predefinita HPC Pack aumenta di 1% i nodi aggiuntivi per i processi MPI. ExtraNodesGrowRatio è impostato su 1.By default HPC Pack grows 1% extra nodes for MPI jobs (ExtraNodesGrowRatio is set to 1). Il motivo è che MPI può richiedere più nodi e il processo può essere eseguito solo quando tutti i nodi sono pronti.The reason is that MPI may require multiple nodes, and the job can only run when all nodes are ready. Quando Azure avvia i nodi, in alcuni casi l'avvio di un nodo può richiedere più tempo rispetto ad altri, causando l'inattività degli altri nodi in attesa che quel nodo sia pronto.When Azure starts nodes, occasionally one node might need more time to start than others, causing other nodes to be idle while waiting for that node to get ready. Aumentando i nodi supplementari, HPC Pack riduce il tempo di attesa delle risorse, riducendo potenzialmente i costi.By growing extra nodes, HPC Pack reduces this resource waiting time, and potentially saves costs. Per aumentare la percentuale di nodi aggiuntivi per i processi MPI, ad esempio del 10%, eseguire un comando simile aTo increase the percentage of extra nodes for MPI jobs (for example, to 10%), run a command similar to

Set-HpcClusterProperty -ExtraNodesGrowRatio 10

Esempio SOASOA example

Per impostazione predefinita, SoaJobGrowThreshold è impostata su 50000 e SoaRequestsPerCore è impostato su 20000.By default, SoaJobGrowThreshold is set to 50000 and SoaRequestsPerCore is set to 20000. Se si invia un processo SOA con 70000 richieste, ci sarà una sola attività in coda e le richieste in ingresso saranno 70000.If you submit one SOA job with 70000 requests, there is one queued task and incoming requests are 70000. In questo caso HPC Pack aumenta 1 core per l'attività in coda e per le richieste in ingresso aumenta (70000 - 50000)/20000 = 1 core, in modo da aumentare in totale 2 core per questo processo SOA.In this case HPC Pack grows 1 core for the queued task, and for incoming requests, grows (70000 - 50000)/20000 = 1 core, so in total grows 2 cores for this SOA job.

Eseguire lo script AzureAutoGrowShrink.ps1Run the AzureAutoGrowShrink.ps1 script

PrerequisitiPrerequisites

  • Cluster HPC Pack 2012 R2 Update 1 o versione successiva: lo script AzureAutoGrowShrink.ps1 è installato nella cartella %CCP_HOME%bin.HPC Pack 2012 R2 Update 1 or later cluster - The AzureAutoGrowShrink.ps1 script is installed in the %CCP_HOME%bin folder. Il nodo head del cluster può essere distribuito in locale o in una macchina virtuale di Azure.The cluster head node can be deployed either on-premises or in an Azure VM. Vedere Configurare un cluster ibrido con HPC Pack per iniziare con un nodo head locale e i nodi "burst" di Azure.See Set up a hybrid cluster with HPC Pack to get started with an on-premises head node and Azure "burst" nodes. Vedere lo script di distribuzione IaaS di HPC Pack per distribuire velocemente un cluster HPC Pack in macchine virtuali di Azure o usare un modello di avvio rapido di Azur.See the HPC Pack IaaS deployment script to quickly deploy an HPC Pack cluster in Azure VMs, or use an Azure quickstart template.
  • Azure PowerShell 1.4.0: lo script attualmente dipende da questa versione specifica di Azure PowerShell.Azure PowerShell 1.4.0 - The script currently depends on this specific version of Azure PowerShell.
  • Per un cluster con nodi burst di Azure - Eseguire lo script in un computer client in cui è installato HPC Pack o nel nodo head.For a cluster with Azure burst nodes - Run the script on a client computer where HPC Pack is installed, or on the head node. In caso di esecuzione in un computer client, assicurarsi di impostare la variabile $env:CCP_SCHEDULER in modo che punti al nodo head.If running on a client computer, ensure that you set the variable $env:CCP_SCHEDULER to point to the head node. I nodi "burst" di Azure devono essere aggiunti al cluster, ma possono essere nello stato Non distribuito.The Azure “burst” nodes must be added to the cluster, but they may be in the Not-Deployed state.
  • Per un cluster distribuito in macchine virtuali di Azure (modello di distribuzione di Resource Manager): per un cluster di macchine virtuali di Azure distribuite nel modello di distribuzione di Resource Manager, lo script supporta due metodi per l'autenticazione di Azure: accedere al proprio account Azure per eseguire lo script ogni volta, eseguendo Login-AzureRmAccount, oppure configurare un'entità servizio per l'autenticazione con un certificato.For a cluster deployed in Azure VMs (Resource Manager deployment model) - For a cluster of Azure VMs deployed in the Resource Manager deployment model, the script supports two methods for Azure authentication: sign in to your Azure account to run the script every time (by running Login-AzureRmAccount, or configure a service principal to authenticate with a certificate. HPC Pack fornisce lo script ConfigARMAutoGrowShrinkCert.ps per creare un'entità servizio con certificato.HPC Pack provides the script ConfigARMAutoGrowShrinkCert.ps to create a service principal with certificate. Lo script crea un'applicazione Azure Active Directory (Azure AD) e un'entità servizio e assegna il ruolo di collaboratore all'entità servizio.The script creates an Azure Active Directory (Azure AD) application and a service principal, and assigns the Contributor role to the service principal. Per eseguire lo script, avviare Azure PowerShell come amministratore ed eseguire i comandi seguenti:To run the script, start Azure PowerShell as administrator and run the following commands:

    cd $env:CCP_HOME\bin
    
    Login-AzureRmAccount
    
    .\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName “YourHpcPackAppName” -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -PfxFile "d:\yourcertificate.pfx"
    

    Per altre informazioni su ConfigARMAutoGrowShrinkCert.ps1, eseguire Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed.For more details about ConfigARMAutoGrowShrinkCert.ps1, run Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed,

  • Per un cluster distribuito in macchine virtuali di Azure (modello di distribuzione classica): eseguire lo script nella macchina virtuale del nodo head, perché dipende dagli script Start-HpcIaaSNode.ps1 e Stop-HpcIaaSNode.ps1 installati in tale posizione.For a cluster deployed in Azure VMs (classic deployment model) - Run the script on the head node VM, because it depends on the Start-HpcIaaSNode.ps1 and Stop-HpcIaaSNode.ps1 scripts that are installed there. Per questi script è inoltre necessario un certificato di gestione di Azure o un file delle impostazioni di pubblicazione (vedere Gestire i nodi di calcolo in un cluster HPC Pack in Azure).Those scripts additionally require an Azure management certificate or publish settings file (see Manage compute nodes in an HPC Pack cluster in Azure). Assicurarsi che tutte le macchine virtuali del nodo di calcolo necessarie siano già aggiunte al cluster.Make sure all the compute node VMs you need are already added to the cluster. Potrebbero essere in stato arrestato.They may be in the Stopped state.

SintassiSyntax

AzureAutoGrowShrink.ps1 [-NodeTemplates <String[]>] [-JobTemplates <String[]>] [-NodeType <String>]
    -NumOfActiveQueuedTasksPerNodeToGrow <Single> [-NumOfActiveQueuedTasksToGrowThreshold <Int32>]
    [-NumOfInitialNodesToGrow <Int32>] [-GrowCheckIntervalMins <Int32>] [-ShrinkCheckIntervalMins <Int32>]
    [-ShrinkCheckIdleTimes <Int32>] [-ExtraNodesGrowRatio <Int32>] [-ArgFile <String>] [-LogFilePrefix <String>]
    [<CommonParameters>]

AzureAutoGrowShrink.ps1 [-NodeTemplates <String[]>] [-JobTemplates <String[]>] [-NodeType <String>]
    -NumOfQueuedJobsPerNodeToGrow <Single> [-NumOfQueuedJobsToGrowThreshold <Int32>] [-NumOfInitialNodesToGrow
    <Int32>] [-GrowCheckIntervalMins <Int32>] [-ShrinkCheckIntervalMins <Int32>] [-ShrinkCheckIdleTimes <Int32>]
    [-ExtraNodesGrowRatio <Int32>] [-ArgFile <String>] [-LogFilePrefix <String>] [<CommonParameters>]

AzureAutoGrowShrink.ps1 -UseLastConfigurations [-ArgFile <String>] [-LogFilePrefix <String>] [<CommonParameters>]

ParametriParameters

  • NodeTemplates - Nomi dei modelli di nodo per definire l'ambito per i nodi da ingrandire o ridurre.NodeTemplates - Names of the node templates to define the scope for the nodes to grow and shrink. Se non specificato (il valore predefinito è @()), tutti i nodi nel gruppo di nodi AzureNodes rientrano nell'ambito quando il valore di NodeType è AzureNodes e tutti i nodi nel gruppo di nodi ComputeNodes rientrano nell'ambito quando il valore di NodeType è ComputeNodes.If not specified (the default value is @()), all nodes in the AzureNodes node group are in scope when NodeType has a value of AzureNodes, and all nodes in the ComputeNodes node group are in scope when NodeType has a value of ComputeNodes.
  • JobTemplates : nomi dei modelli di processo per definire l'ambito per i nodi da ingrandire.JobTemplates - Names of the job templates to define the scope for the nodes to grow.
  • NodeType - Il tipo di nodo da ingrandire o ridurre.NodeType - The type of node to grow and shrink. I valori supportati sono:Supported values are:

    • AzureNodes - Per i nodi di Azure PaaS (burst) in un cluster locale o IaaS di Azure.AzureNodes – for Azure PaaS (burst) nodes in an on-premises or Azure IaaS cluster.
    • ComputeNodes - Solo per le macchine virtuali dei nodi di calcolo in un cluster IaaS di Azure.ComputeNodes - for compute node VMs only in an Azure IaaS cluster.
  • NumOfQueuedJobsPerNodeToGrow - Numero di processi in coda richiesti per ingrandire un nodo.NumOfQueuedJobsPerNodeToGrow - Number of queued jobs required to grow one node.

  • NumOfQueuedJobsToGrowThreshold - Numero di processi in coda di soglia per avviare il processo di ingrandimento.NumOfQueuedJobsToGrowThreshold - The threshold number of queued jobs to start the grow process.
  • NumOfActiveQueuedTasksPerNodeToGrow - Numero di attività in coda attive richieste per ingrandire un nodo.NumOfActiveQueuedTasksPerNodeToGrow - The number of active queued tasks required to grow one node. Se si specifica un valore maggiore di 0 per NumOfQueuedJobsPerNodeToGrow , questo parametro viene ignorato.If NumOfQueuedJobsPerNodeToGrow is specified with a value greater than 0, this parameter is ignored.
  • NumOfActiveQueuedTasksToGrowThreshold - Numero di attività in coda attive di soglia per avviare il processo di ingrandimento.NumOfActiveQueuedTasksToGrowThreshold - The threshold number of active queued tasks to start the grow process.
  • NumOfInitialNodesToGrow - Numero minimo iniziale dei nodi, da ingrandire se lo stato di tutti i nodi nell'ambito è Non distribuito o Arrestato (deallocato).NumOfInitialNodesToGrow - The initial minimum number of nodes to grow if all the nodes in scope are Not-Deployed or Stopped (Deallocated).
  • GrowCheckIntervalMins - Intervallo in minuti tra i controlli dell'ingrandimento.GrowCheckIntervalMins - The interval in minutes between checks to grow.
  • ShrinkCheckIntervalMins - Intervallo in minuti tra i controlli della riduzione.ShrinkCheckIntervalMins - The interval in minutes between checks to shrink.
  • ShrinkCheckIdleTimes: numero di controlli continui della riduzione, separati da ShrinkCheckIntervalMins, per indicare che i nodi sono inattivi.ShrinkCheckIdleTimes - The number of continuous shrink checks (separated by ShrinkCheckIntervalMins) to indicate the nodes are idle.
  • UseLastConfigurations : configurazioni precedenti salvate nel file di argomenti.UseLastConfigurations - The previous configurations saved in the argument file.
  • ArgFile- Nome del file di argomenti usato per salvare e aggiornare le configurazioni per eseguire lo script.ArgFile- The name of the argument file used to save and update the configurations to run the script.
  • LogFilePrefix : prefisso del nome del file di log.LogFilePrefix - The prefix name of the log file. È possibile specificare un percorso.You can specify a path. Per impostazione predefinita il log viene scritto nella directory di lavoro corrente.By default the log is written to the current working directory.

Esempio 1Example 1

Nell'esempio seguente, i nodi burst di Azure distribuiti con il modello Default AzureNode Template vengono configurati per l'ingrandimento e la riduzione automatici.The following example configures the Azure burst nodes deployed with the Default AzureNode Template to grow and shrink automatically. Se tutti i nodi sono inizialmente nello stato Non distribuito vengono avviati almeno 3 nodi.If all the nodes are initially in the Not-Deployed state, at least 3 nodes are started. Se il numero di processi in coda è maggiore di 8, lo script avvia i nodi fino a quando il numero non supera il rapporto tra processi in coda e NumOfQueuedJobsPerNodeToGrow.If the number of queued jobs exceeds 8, the script starts nodes until their number exceeds the ratio of queued jobs to NumOfQueuedJobsPerNodeToGrow. Se viene trovato un nodo inattivo in 3 tempi di inattività consecutivi, il nodo viene arrestato.If a node is found to be idle in 3 consecutive idle times, it is stopped.

.\AzureAutoGrowShrink.ps1 -NodeTemplates @('Default AzureNode
 Template') -NodeType AzureNodes -NumOfQueuedJobsPerNodeToGrow 5
 -NumOfQueuedJobsToGrowThreshold 8 -NumOfInitialNodesToGrow 3
 -GrowCheckIntervalMins 1 -ShrinkCheckIntervalMins 1 -ShrinkCheckIdleTimes 3

Esempio 2Example 2

Nell'esempio seguente, le macchine virtuali dei nodi di calcolo di Azure distribuite con il modello Default ComputeNode Template vengono configurate per l'ingrandimento e la riduzione automatici.The following example configures the Azure compute node VMs deployed with the Default ComputeNode Template to grow and shrink automatically. I processi configurati dal modello di processo predefinito definiscono l'ambito del carico di lavoro nel cluster.The jobs configured by the Default job template define the scope of the workload on the cluster. Se tutti i nodi sono inizialmente arrestati, vengono avviati almeno 5 nodi.If all the nodes are initially stopped, at least 5 nodes are started. Se il numero delle attività in coda attive è maggiore di 15, lo script avvia i nodi fino a quando il numero non supera il rapporto tra le attività in coda attive e NumOfActiveQueuedTasksPerNodeToGrow.If the number of active queued tasks exceeds 15, the script starts nodes until their number exceeds the ratio of active queued tasks to NumOfActiveQueuedTasksPerNodeToGrow. Se viene trovato un nodo inattivo in 10 tempi di inattività consecutivi, il nodo viene arrestato.If a node is found to be idle in 10 consecutive idle times, it is stopped.

.\AzureAutoGrowShrink.ps1 -NodeTemplates 'Default ComputeNode Template' -JobTemplates 'Default' -NodeType ComputeNodes -NumOfActiveQueuedTasksPerNodeToGrow 10 -NumOfActiveQueuedTasksToGrowThreshold 15 -NumOfInitialNodesToGrow 5 -GrowCheckIntervalMins 1 -ShrinkCheckIntervalMins 1 -ShrinkCheckIdleTimes 10 -ArgFile 'IaaSVMComputeNodes_Arg.xml' -LogFilePrefix 'IaaSVMComputeNodes_log'