Otomatik Ölçeklendirme'de dokunma

Bu makalede otomatik ölçeklendirmeye dokunma ve bundan kaçınma işlemleri açıklanmaktadır.

Dokunma, bir dizi karşıt ölçek olayına neden olan bir döngü koşulunu ifade eder. Ölçek olayı karşı ölçek olayını tetiklediğinde dokunma gerçekleşir.

Otomatik ölçeklendirme, beklemedeki bir ölçek daraltma eylemini değerlendirir ve bunun çırpmaya neden olup olmadığını gösterir. Dokunmanın gerçekleşebildiği durumlarda, otomatik ölçeklendirme ölçeklendirme eylemini atlayabilir ve sonraki çalıştırmada yeniden değerlendirebilir veya otomatik ölçeklendirme belirtilen kaynak örneği sayısından daha az ölçeklendirilebilir. Otomatik ölçeklendirme değerlendirme işlemi, otomatik ölçeklendirme altyapısı her çalıştığında gerçekleşir ve kaynak türüne bağlı olarak her 30 ile 60 saniyede bir gerçekleşir.

Yeterli kaynak sağlamak için, ölçeği genişletme olayları için olası dokunma denetimi gerçekleşmez. Otomatik ölçeklendirme, dokunmayı önlemek için ölçeği daraltma olayını yalnızca erteler.

Örneğin, aşağıdaki kuralları varsayalım:

  • Ortalama CPU kullanımı %50'nin üzerinde olduğunda ölçeği 1 örnek artırarak genişletme.
  • Ortalama CPU kullanımı %30'un altında olduğunda örnek sayısını 1 örnek azaltarak ölçeklendirin.

Aşağıdaki T0 tablosunda, kullanım %56 olduğunda bir genişleme eylemi tetiklenir ve 2 örnekte %56 CPU kullanımıyla sonuçlanır. Bu, ölçek kümesi için ortalama %28 verir. %28 ölçeği daraltma eşiğinden az olduğundan otomatik ölçeklendirmenin ölçeği yeniden daraltması gerekir. Ölçeği daraltmak, ölçek kümesini %56 CPU kullanımına döndürerek ölçeği genişletme eylemini tetikler.

Saat Örnek sayısı CPU% Örnek başına CPU yüzdesi Olayı ölçeklendirme Sonuçta elde edilen örnek sayısı
T0 1 56% 56% Ölçeği genişletme 2
T1 2 56% 28% Ölçeği daraltma 1
T2 1 56% 56% Ölçeği genişletme 2
T3 2 56% 28% Ölçeği daraltma 1

Denetimsiz bırakılırsa devam eden bir dizi ölçek olayı olacaktır. Ancak bu durumda, otomatik ölçeklendirme altyapısı T1'de ölçeklendirme olayını erteler ve sonraki otomatik ölçeklendirme çalıştırması sırasında yeniden değerlendirir. Ölçeği daraltma işlemi yalnızca ortalama CPU kullanımı %30'un altında olduğunda gerçekleşir.

Kanat çırpma genellikle aşağıdaki nedenlere neden olabilir:

  • Eşikler arasındaki küçük veya hiç kenar boşluğu yok
  • Birden fazla örnekle ölçeklendirme
  • Farklı ölçümler kullanarak ölçeği daraltma ve genişletme

Eşikler arasındaki küçük veya hiç kenar boşluğu yok

Çırpmayı önlemek için ölçeklendirme eşikleri arasında yeterli kenar boşluklarını koruyun.

Örneğin, eşikler arasında kenar boşluğu olmayan aşağıdaki kurallar, dokunmaya neden olur.

  • İş parçacığı sayısı >=600 olduğunda ölçeği genişletme
  • İş parçacığı sayısı < 600 olduğunda ölçeği daraltma

İş parçacığı sayısı 600'den büyük veya buna eşit olduğunda ölçeği genişleten ve iş parçacığı sayısı 600'den küçük olduğunda ölçeği daraltan otomatik ölçeklendirme kurallarını gösteren ekran görüntüsü.

Aşağıdaki tabloda bu otomatik ölçeklendirme kurallarının olası sonucu gösterilmektedir:

Saat Örnek sayısı Ilmekli Örnek başına iş parçacığı sayısı Olayı ölçeklendirme Sonuçta elde edilen örnek sayısı
T0 2 1250 625 Ölçeği genişletme 3
T1 3 1250 417 Ölçeği daraltma 2
  • T0 zamanında, örnek başına 1250 iş parçacığını veya 625 basamakları işleyen iki örnek vardır. Otomatik ölçeklendirme üç örneğe genişletildi.
  • Ölçeği genişletme işleminin ardından T1'de aynı 1250 iş parçacığına sahibiz ancak üç örneğimiz var ve örnek başına yalnızca 417 iş parçacığı var. Ölçeği daraltma olayı tetiklenir.
  • Ölçeği daraltmadan önce, otomatik ölçeklendirme, ölçeği daraltma olayı gerçekleştiğinde ne olacağını değerlendirir. Bu örnekte, örnek başına 1250 / 2 = 625, yani 625 iş parçacığı. Ölçeği daraltıldıktan sonra otomatik ölçeklendirmenin hemen yeniden ölçeğini genişletmesi gerekir. Ölçeği yeniden genişletildiyse işlem yinelenir ve bu da döngüye neden olur.
  • Bu durumdan kaçınmak için otomatik ölçeklendirme ölçeği daraltmaz. Otomatik ölçeklendirme geçerli ölçeklendirme olayını atlar ve sonraki yürütme döngüsünde kuralı yeniden değerlendirir.

Bu durumda, ölçeklendirme olayı gerçekleşmediğinden otomatik ölçeklendirme çalışmıyor gibi görünüyor. Otomatik ölçeklendirme ayarı sayfasındaki Çalıştırma geçmişi sekmesine göz atarak herhangi bir dokunma olup olmadığını denetleyin.

Otomatik ölçeklendirme çalıştırma geçmişi sekmesini gösteren ve kayıtların dokunmayı gösterdiği ekran görüntüsü.

Eşikler arasında yeterli bir kenar boşluğu ayarlamak yukarıdaki senaryoyu önler. Örneğin,

  • İş parçacığı sayısı >=600 olduğunda ölçeği genişletme
  • İş parçacığı sayısı < 400 olduğunda ölçeği daraltma

İş parçacığı sayısı 600'den büyük veya buna eşit olduğunda ölçeği genişletme ve iş parçacığı sayısı 400'den küçük olduğunda ölçeği daraltma ile otomatik ölçeklendirme kurallarını gösteren ekran görüntüsü.

Ölçeği daraltma iş parçacığı sayısı 400 ise, ölçek olayının gerçekleşmesi için toplam iş parçacığı sayısının 1200'in altına düşmesi gerekir. Aşağıdaki tabloya bakın.

Saat Örnek sayısı Ilmekli Örnek başına iş parçacığı sayısı Olayı ölçeklendirme Sonuçta elde edilen örnek sayısı
T0 2 1250 625 Ölçeği genişletme 3
T1 3 1250 417 ölçek olayı yok 3
T2 3 1180 394 ölçeği daraltma 2
T3 3 1180 590 ölçek olayı yok 2

Birden fazla örnekle ölçeklendirme

Ölçeği birden fazla örnekle daraltırken veya genişletirken çırpmayı önlemek için, otomatik ölçeklendirme kuralda belirtilen örnek sayısından daha az ölçeklendirilebilir.

Örneğin, aşağıdaki kurallar dokunmaya neden olabilir:

  • İstek sayısı >örnek başına =200 olduğunda ölçeği 20 genişletme.
  • VEYA örnek başına %70 CPU > olduğunda.
  • İstek sayısı <örnek başına =50 olduğunda ölçeği 10 olarak daraltın.

Örnek için yapılandırılmış kurallarla varsayılan ölçeklendirme koşulunu otomatik ölçeklendirmeyi gösteren ekran görüntüsü.

Aşağıdaki tabloda bu otomatik ölçeklendirme kurallarının olası sonucu gösterilmektedir:

Saat Örnek sayısı CPU İstek sayısı Olayı ölçeklendirme Sonuçta elde edilen örnekler Yorumlar
T0 30 65% Örnek başına 3000 veya 100. Ölçek olayı yok 30
T1 30 65 1500 3 örnek ölçeği daraltma 27 10 ölçeği daraltmak, tahmini CPU'ların %70'in üzerine çıkmasına neden olarak ölçeği genişletme olayına yol açabilir.

T0 zamanında uygulama 30 örnek, toplam istek sayısı 3000 ve örnek başına %65 CPU kullanımı ile çalışır.

T1'de, istek sayısı 1500 isteğe veya örnek başına 50 isteğe düştüğünde, otomatik ölçeklendirme 10 örnekle 20 örnek ölçeğini daraltmaya çalışır. Ancak otomatik ölçeklendirme, 20 örnek için CPU yükünün %70'in üzerinde olacağını tahmin eder ve bu da ölçeği genişletme olayına neden olur.

Otomatik ölçeklendirme altyapısı, otomatik ölçeklendirme altyapısı, tanımlanan eşiklerde tüm ölçümlerin bulunduğu bir örnek sayısı bulana kadar 20'nin üzerindeki örnek sayıları için CPU kullanımını tahmin eder:

  • CPU değerini %70'in altında tutun.
  • Örnek başına istek sayısını 50'nin üzerinde tutun.
  • Örnek sayısını 30'un altına düşürün.

Bu durumda, kural 10'lık bir düşüş belirtse bile, kuralları karşılamak için otomatik ölçeklendirme 30'dan 27 örneğe kadar 3'e kadar ölçeklendirilebilir. Etkinlik günlüğüne ölçeği azaltmayı içeren bir açıklama içeren bir günlük iletisi yazılır ve bu ileti, dokunmayı önlemek için güncelleştirilmiş örnek sayısıyla birlikte gerçekleşir

Otomatik ölçeklendirme uygun sayıda örneği bulamazsa olay ölçeğini atlar ve sonraki döngüde yeniden değerlendirir.

Not

Otomatik ölçeklendirme altyapısı, hedef örnek sayısına ölçeklendirmenin bir sonucu olarak dokunmanın gerçekleşebileceğini algılarsa, geçerli sayı ile hedef sayı arasında daha düşük sayıda örneğe ölçeklendirmeyi de dener. Bu aralık içinde dokunma gerçekleşmezse, otomatik ölçeklendirme yeni hedefle ölçeklendirme işlemine devam eder.

Günlük dosyaları

Aşağıdaki sorguyla etkinlik günlüğünde dokunmayı bulun:

// Activity log, CategoryValue: Autoscale
// Lists latest Autoscale operations from the activity log, with OperationNameValue =="Microsoft.Insights/AutoscaleSettings/Flapping/Action
AzureActivity
|where CategoryValue =="Autoscale" and OperationNameValue =="Microsoft.Insights/AutoscaleSettings/Flapping/Action"
|sort by TimeGenerated desc 

Aşağıda, dokunma için etkinlik günlüğü kaydı örneği verilmiştir:

Bir dokunma olayından günlük kaydını gösteren ekran görüntüsü.

{
"eventCategory": "Autoscale",
"eventName": "FlappingOccurred",
"operationId": "ffd31c67-1438-47a5-bee4-1e3a102cf1c2",
"eventProperties": 
    "{"Description":"Scale down will occur with updated instance count to avoid flapping. 
     Resource: '/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/  resourcegroups/ed-rg-001/providers/Microsoft.Web/serverFarms/  ScaleableAppServicePlan'.
     Current instance count: '6', 
     Intended new instance count: '1'.
     Actual new instance count: '4'",
    "ResourceName":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourcegroups/ed-rg-001/providers/Microsoft.Web/serverFarms/ScaleableAppServicePlan",
    "OldInstancesCount":6,
    "NewInstancesCount":4,
    "ActiveAutoscaleProfile":{"Name":"Auto created scale condition",
    "Capacity":{"Minimum":"1","Maximum":"30","Default":"1"},
    "Rules":[{"MetricTrigger":{"Name":"Requests","Namespace":"microsoft.web/sites","Resource":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","ResourceLocation":"West Central US","TimeGrain":"PT1M","Statistic":"Average","TimeWindow":"PT1M","TimeAggregation":"Maximum","Operator":"GreaterThanOrEqual","Threshold":3.0,"Source":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","MetricType":"MDM","Dimensions":[],"DividePerInstance":true},"ScaleAction":{"Direction":"Increase","Type":"ChangeCount","Value":"10","Cooldown":"PT1M"}},{"MetricTrigger":{"Name":"Requests","Namespace":"microsoft.web/sites","Resource":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","ResourceLocation":"West Central US","TimeGrain":"PT1M","Statistic":"Max","TimeWindow":"PT1M","TimeAggregation":"Maximum","Operator":"LessThan","Threshold":3.0,"Source":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","MetricType":"MDM","Dimensions":[],"DividePerInstance":true},"ScaleAction":{"Direction":"Decrease","Type":"ChangeCount","Value":"5","Cooldown":"PT1M"}}]}}",
"eventDataId": "b23ae911-55d0-4881-8684-fc74227b2ddb",
"eventSubmissionTimestamp": "2022-09-13T07:20:41.1589076Z",
"resource": "scaleableappserviceplan",
"resourceGroup": "ED-RG-001",
"resourceProviderValue": "MICROSOFT.WEB",
"subscriptionId": "D1234567-9876-A1B2-A2B1-123A567B9F876",
"activityStatusValue": "Succeeded"
}

Sonraki adımlar

Otomatik ölçeklendirme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın: