2015-06-24 10 views
5

AGGIORNAMENTO: Sembra che funzioni adesso.Azure Web App non esegue automaticamente la scalabilità automatica

Ho configurato la nostra app Web di Azure per scalare da 4 a 10 istanze per il carico della CPU oltre l'80% e meno del 60%. Autoscale settings

Il nostro sito ha superato il 95% del carico della CPU per oltre due ore e non si è verificata alcuna scalabilità automatica.

Se si esaminano le "regole di pianificazione e di performance" Vedo che la durata (minuti) è 300. schedule and performance rules

sento che questo dovrebbe essere 10 minuti, invece, ma quando ho impostato e risparmiare (con la convalida valida regole) ottengo questo errore:

autoscale error

ho fatto qualcosa di sbagliato o c'è un bug nel portale?

Dopo che ho increadsed manualmente a 5 per poi diminuire di nuovo a 4 posso vedere che autoscaling lavora nei servizi di gestione dei log:

ActiveAutoscaleProfile: { "Name": "Default", "Capacity": { 
    "Minimum": "2", 
    "Maximum": "10", 
    "Default": "2" }, "Rules": [ 
    { 
     "MetricTrigger": { 
     "Name": "CpuPercentage", 
     "Namespace": "", 
     "Resource": "xxx", 
     "ResourceLocation": "West Europe", 
     "TimeGrain": "PT1H", 
     "Statistic": "Average", 
     "TimeWindow": "PT5H", 
     "TimeAggregation": "Average", 
     "Operator": "GreaterThanOrEqual", 
     "Threshold": 80.0, 
     "Source": "xxx" 
     }, 
     "ScaleAction": { 
     "Direction": "Increase", 
     "Type": "ChangeCount", 
     "Value": "1", 
     "Cooldown": "PT5M" 
     } 
    }, 
    { 
     "MetricTrigger": { 
     "Name": "CpuPercentage", 
     "Namespace": "", 
     "Resource": "xxx", 
     "ResourceLocation": "West Europe", 
     "TimeGrain": "PT1H", 
     "Statistic": "Average", 
     "TimeWindow": "PT5H", 
     "TimeAggregation": "Average", 
     "Operator": "LessThan", 
     "Threshold": 60.0, 
     "Source": "xxx" 
     }, 
     "ScaleAction": { 
     "Direction": "Decrease", 
     "Type": "ChangeCount", 
     "Value": "1", 
     "Cooldown": "PT5M" 
     } 
    } ] } 

Description: The autoscale engine attempting to scale resource xxx' from 3 instances count to 2 instances count. 

LastScaleActionTime: Wed, 03 Jun 2015 09:11:38 GMT 

Microsoft.Resources/EventNameV2: Autoscale a resource. 

Microsoft.Resources/Operation: Scale down 

Microsoft.Resources/ResourceUri: /xxx 

NewInstancesCount: 2 

OldInstancesCount: 3 

ResourceName: xxx 

così posso vedere che autoscaling funziona davvero.

Il valore può essere modificato a livello di codice?

risposta

4

Questo sembra essere un bug nel portale di anteprima. Ho dato un feedback su questo here se vuoi votarlo.

Il problema ha a che fare con la proprietà TimeGrain esistente in MetricTrigger come parte della regola della scala automatica. Sembra che il portale di anteprima abbia impostato questo valore su 1 ora ("PT1H") senza alcun modo per cambiarlo. Ciò impedisce di impostare una Durata nel portale su un valore inferiore a 60 minuti.

Come soluzione temporanea, se si utilizza il portale corrente su https://manage.windowsazure.com e si configura la scala automatica per CPU per la propria app Web, quindi si ritorna al portale di anteprima, sarà possibile impostare la Durata a partire da 5 minuti .

Infine, per rispondere alla domanda sull'impostazione di questa opzione a livello di programmazione. Sì, questo è possibile usando le librerie di gestione. Vi mostrerò come fare questo here per un servizio cloud. Ma dovrebbe essere lo stesso (o molto simile) per le app web. Questo è stato più di un anno fa, quindi potrebbe non funzionare al 100% come ho scritto, ma sembra che la classe MetricTrigger sia ancora fondamentalmente la stessa e che sia dove la maggior parte della tua attenzione sarà.

+0

La soluzione che descrivi ha funzionato e ho impostato il tempo su 10 min. Mi piacerebbe che ci fosse un modo migliore per segnalare bug poi creare un suggerimento ma ho aggiunto i miei voti. – Martin

Problemi correlati