Otomatik ölçeklendirme ayarlarını anlama

Otomatik ölçeklendirme ayarları, uygulamanızın dalgalı yükünü işlemek için doğru miktarda kaynağa sahip olduğunuzdan emin olmanıza yardımcı olur. Otomatik ölçeklendirme ayarlarını yük veya performansı gösteren ölçümlere göre veya zamanlanmış bir tarih ve saatte tetiklenecek şekilde yapılandırabilirsiniz.

Bu makalede otomatik ölçeklendirme ayarları açıklanmaktadır.

Otomatik ölçeklendirme ayarı şeması

Aşağıdaki örnekte şu özniteliklere sahip bir otomatik ölçeklendirme ayarı gösterilmektedir:

  • Tek bir varsayılan profil.
  • Bu profildeki iki ölçüm kuralı: biri ölçeği genişletme, diğeri de ölçeği daraltma için.
    • Ölçeği genişletme kuralı, sanal makine ölçek kümesinin cpu ölçüm yüzdesinin son 10 dakika boyunca %85'in üzerinde olması durumunda tetiklenir.
    • Sanal makine ölçek kümesinin ortalaması son dakika için %60'ın altında olduğunda ölçek daraltma kuralı tetiklenir.

Dekont

Bir ayarın birden çok profili olabilir. Daha fazla bilgi edinmek için profiller bölümüne bakın. Bir profilde birden çok ölçek genişletme kuralı ve ölçek daraltma kuralları da tanımlanmış olabilir. Bunların nasıl değerlendirildiğini görmek için değerlendirme bölümüne bakın.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Insights/autoscaleSettings",
            "apiVersion": "2015-04-01",
            "name": "VMSS1-Autoscale-607",
            "location": "eastus",
            "properties": {

                "name": "VMSS1-Autoscale-607",
                "enabled": true,
                "targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
    "profiles": [
      {
        "name": "Auto created default scale condition",
        "capacity": {
          "minimum": "1",
          "maximum": "4",
          "default": "1"
        },
        "rules": [
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT10M",
              "timeAggregation": "Average",
              "operator": "GreaterThan",
              "threshold": 85
            },
            "scaleAction": {
              "direction": "Increase",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          },
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT10M",
              "timeAggregation": "Average",
              "operator": "LessThan",
              "threshold": 60
            },
            "scaleAction": {
              "direction": "Decrease",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          }
        ]
      }
    ]
  }
}

Aşağıdaki tabloda, önceki otomatik ölçeklendirme ayarının JSON dosyasındaki öğeler açıklanmaktadır.

Bölüm Öğe adı Portal adı Açıklama
Ayar Kimlik Otomatik ölçeklendirme ayarının kaynak kimliği. Otomatik ölçeklendirme ayarları bir Azure Resource Manager kaynağıdır.
Ayar name Otomatik ölçeklendirme ayarı adı.
Ayar konum Otomatik ölçeklendirme ayarının konumu. Bu konum, ölçeklendirilen kaynağın konumundan farklı olabilir.
özellikler targetResourceUri Ölçeklendirilmekte olan kaynağın kaynak kimliği. Kaynak başına yalnızca bir otomatik ölçeklendirme ayarına sahip olabilirsiniz.
özellikler Profil Ölçeklendirme koşulu Otomatik ölçeklendirme ayarı bir veya daha fazla profilden oluşur. Otomatik ölçeklendirme altyapısı her çalıştığında bir profil yürütür. Otomatik ölçeklendirme ayarı başına en fazla 20 profil yapılandırın.
Profil name Profilin adı. Profili tanımlamanıza yardımcı olacak herhangi bir ad seçebilirsiniz.
Profil capacity.maximum Örnek sınırları - Maksimum İzin verilen maksimum kapasite. Profili yürütürken otomatik ölçeklendirmenin kaynağınızı bu sayın üzerinde ölçeklendirmemesini sağlar.
Profil capacity.minimum Örnek sınırları - Minimum İzin verilen en düşük kapasite. Profili yürütürken otomatik ölçeklendirmenin kaynağınızı bu sayın altına ölçeklendirmemesini sağlar
Profil capacity.default Örnek sınırları - Varsayılan Kaynak ölçümünü okurken bir sorun varsa ve geçerli kapasite varsayılanın altındaysa, otomatik ölçeklendirme ölçeği varsayılan değere genişletilir. Bu eylem, kaynağın kullanılabilirliğini güvence altına alır. Geçerli kapasite zaten varsayılan kapasiteden yüksekse, otomatik ölçeklendirme ölçeği daraltmaz.
Profil rules Kurallar Otomatik ölçeklendirme, profildeki kuralları kullanarak maksimum ve minimum kapasiteler arasında otomatik olarak ölçeklendirilir. Bir profilde en fazla 10 ayrı kural tanımlayın. Genellikle kurallar, biri ölçeğin ne zaman genişletileceğini, diğeri ise ölçeğin ne zaman genişletileceğini belirlemek için çiftler halinde tanımlanır.
Kural metricTrigger Ölçek kuralı Kuralın ölçüm koşulunu tanımlar.
metricTrigger metricName Ölçüm adı Ölçümün adı.
metricTrigger metricResourceUri Ölçümü yayan kaynağın kaynak kimliği. Çoğu durumda, ölçeklendirilen kaynakla aynıdır. Bazı durumlarda farklı olabilir. Örneğin, bir sanal makine ölçek kümesini depolama kuyruğundaki ileti sayısına göre ölçeklendikleyebilirsiniz.
metricTrigger timeGrain Zaman dilimi (dakika) Ölçüm örnekleme süresi. Örneğin, timeGrain = "PT1M", ölçümlerin istatistik öğesinde belirtilen toplama yöntemi kullanılarak 1 dakikada bir toplanması gerektiği anlamına gelir.
metricTrigger Istatistik Zaman dilimi istatistiği timeGrain dönemi içinde toplama yöntemi. Örneğin, istatistik = "Ortalama" ve timeGrain = "PT1M" , ölçümlerin ortalama alınarak 1 dakikada bir toplanması gerektiği anlamına gelir. Bu özellik, ölçümün nasıl örneklendirileğini belirler.
metricTrigger timeWindow Süre Ölçümler için geriye bakma süresi. Örneğin timeWindow = "PT10M", otomatik ölçeklendirme her çalıştığında son 10 dakikadaki ölçümleri sorgular. Zaman penceresi, ölçümlerinizin normalleştirilmesine olanak tanır ve geçici ani artışlara tepki vermekten kaçınıyor.
metricTrigger timeAggregation Toplam süre Örneklenen ölçümleri toplamak için kullanılan toplama yöntemi. Örneğin, timeAggregation = "Average" örneklenen ölçümleri ortalamayı alarak toplamalıdır. Önceki örnekte, on adet 1 dakikalık örnekleri alın ve bunların ortalamasını alın.
Kural scaleAction Eylem Kuralın metricTrigger'ı tetiklendiğinde gerçekleştirecek eylem.
scaleAction yön İşlem Ölçeği genişletmek için "Artır", ölçeği daraltmak için "Azalt".
scaleAction değer Örnek sayısı Kaynağın kapasitesini artırma veya azaltma miktarı.
scaleAction cooldown Soğuma (dakika) Yeniden ölçeklendirmeden önce ölçeklendirme işleminden sonra beklenmesi gereken süre. Bekleme süresi, ölçeği daraltma veya ölçeği genişletme olayından sonra yürürlüğe girer. Örneğin, cooldown = "PT10M" ise, otomatik ölçeklendirme 10 dakika daha ölçeklendirmeyi denemez. Bekleme süresi, örneklerin eklenmesi veya kaldırılmasından sonra ölçümlerin dengelenmesini sağlamaktır.

Profilleri otomatik ölçeklendirme

Otomatik ölçeklendirme ayarı başına en fazla 20 farklı profil tanımlayın.
Üç tür otomatik ölçeklendirme profili vardır:

  • Varsayılan profil: Kaynağınızı belirli bir tarih ve saate veya haftanın gününe göre ölçeklendirmeniz gerekmiyorsa varsayılan profili kullanın. Varsayılan profil, geçerli tarih ve saat için başka geçerli profil olmadığında çalışır. Yalnızca bir varsayılan profiliniz olabilir.

  • Sabit tarih profili: Sabit tarih profili tek bir tarih ve saat için geçerlidir. Belirli bir olay için ölçeklendirme kuralları ayarlamak için sabit tarih profilini kullanın. Profil, olayın tarih ve saatinde yalnızca bir kez çalışır. Diğer tüm durumlarda otomatik ölçeklendirme varsayılan profili kullanır.

        ...
        "profiles": [
            {
                "name": " regularProfile",
                "capacity": {
                    ...
                },
                "rules": [
                    ...
                ]
            },
            {
                "name": "eventProfile",
                "capacity": {
                ...
                },
                "rules": [
                    ...
                ],
                "fixedDate": {
                    "timeZone": "Pacific Standard Time",
                    "start": "2017-12-26T00:00:00",
                    "end": "2017-12-26T23:59:00"
                }
            }
        ]
    
  • Yinelenme profili: Bir gün veya haftanın gün kümesi için yinelenme profili kullanılır. Yinelenen profilin şemasında bitiş tarihi yoktur. Yinelenen profilin bitiş tarihi ve saati, aşağıdaki profilin başlangıç zamanına göre ayarlanır. Portal yinelenen profilleri yapılandırmak için kullanıldığında, varsayılan profil otomatik olarak yinelenen profil için belirttiğiniz bitiş saatinde başlayacak şekilde güncelleştirilir. Birden çok profili yapılandırma hakkında daha fazla bilgi için bkz. Birden çok profille otomatik ölçeklendirme

    Buradaki kısmi şema örneği yinelenen bir profil gösterir. Saat 06:00'da başlar ve cumartesi ve pazar günleri saat 19:00'da sona erer. Varsayılan profil, Cumartesi ve Pazar günleri saat 19:00'da başlayacak şekilde değiştirildi.

        {
            "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
            "contentVersion": "1.0.0.0",
            "resources": [
                {
                    "type": "Microsoft.Insights/    autoscaleSettings",
                    "apiVersion": "2015-04-01",
                    "name": "VMSS1-Autoscale-607",
                    "location": "eastus",
                    "properties": {
    
                        "name": "VMSS1-Autoscale-607",
                        "enabled": true,
                        "targetResourceUri": "/subscriptions/    abc123456-987-f6e5-d43c-9a8d8e7f6541/    resourceGroups/rg-vmss1/providers/    Microsoft.Compute/    virtualMachineScaleSets/VMSS1",
                        "profiles": [
                            {
                                "name": "Weekend profile",
                                "capacity": {
                                    ...
                                },
                                "rules": [
                                    ...
                                ],
                                "recurrence": {
                                    "frequency": "Week",
                                    "schedule": {
                                        "timeZone": "E. Europe     Standard Time",
                                        "days": [
                                            "Saturday",
                                            "Sunday"
                                        ],
                                        "hours": [
                                            6
                                        ],
                                        "minutes": [
                                            0
                                        ]
                                    }
                                }
                            },
                            {
                                "name": "{\"name\":\"Auto created default scale condition\",\"for\":\"Weekend profile\"}",
                                "capacity": {
                                   ...
                                },
                                "recurrence": {
                                    "frequency": "Week",
                                    "schedule": {
                                        "timeZone": "E. Europe     Standard Time",
                                        "days": [
                                            "Saturday",
                                            "Sunday"
                                        ],
                                        "hours": [
                                            19
                                        ],
                                        "minutes": [
                                            0
                                        ]
                                    }
                                },
                                "rules": [   
                                  ...
                                ]
                            }
                        ],
                        "notifications": [],
                        "targetResourceLocation": "eastus"
                    }
    
                }
            ]
                }
    
    

Otomatik ölçeklendirme değerlendirmesi

Otomatik ölçeklendirme ayarlarının birden çok profili olabilir. Her profilin birden çok kuralı olabilir. Otomatik ölçeklendirme işi her çalıştığında, bu süre için uygun profili seçerek başlar. Ardından otomatik ölçeklendirme, profildeki ölçüm kurallarının en düşük ve en yüksek değerlerini değerlendirir ve ölçek eylemi gerekip gerekmediğini karar verir. Otomatik ölçeklendirme işi, kaynak türüne bağlı olarak her 30-60 saniyede bir çalışır. Ölçeklendirme eylemi gerçekleştikten sonra otomatik ölçeklendirme işi yeniden ölçeklendirilmeden önce bekleme süresini bekler. Bekleme süresi hem ölçeği genişletme hem de ölçeklendirme eylemleri için geçerlidir.

Otomatik ölçeklendirme hangi profili kullanacak?

Otomatik ölçeklendirme hizmeti her çalıştığında, profiller aşağıdaki sırayla değerlendirilir:

  1. Sabit tarih profilleri
  2. Yinelenen profiller
  3. Varsayılan profil

Bulunan ilk uygun profil kullanılır.

Otomatik ölçeklendirme birden çok kuralı nasıl değerlendirir?

Otomatik ölçeklendirme hangi profilin çalıştıracağını belirledikten sonra, profildeki ölçeği genişletme kurallarını, yani yön = "Artış" değerini değerlendirir. Bir veya daha fazla ölçeği genişletme kuralı tetiklenirse, otomatik ölçeklendirme kuralların her biri için belirtilen scaleAction tarafından belirlenen yeni kapasiteyi hesaplar. Birden fazla ölçeği genişletme kuralı tetiklenirse, hizmet kullanılabilirliğini sağlamak için otomatik ölçeklendirme belirtilen en yüksek kapasiteye ölçeklendirilir.

Örneğin, iki kural olduğunu varsayalım: Kural 1 üç örnekle ölçeği genişletmeyi ve 2. kural ise ölçeği beşe kadar genişletmeyi belirtir. Her iki kural da tetiklenirse otomatik ölçeklendirme ölçeği beş örnekle genişletilir. Benzer şekilde, bir kural ölçeği üç örnek, başka bir kural ölçeği genişletmeyi %15 olarak belirtiyorsa, iki örnek sayısının üst kısmı kullanılır.

Ölçeği genişletme kuralı tetiklenmezse, otomatik ölçeklendirme ölçeği daraltma kurallarını, yani yön = "Azalt" olan kuralları değerlendirir. Otomatik ölçeklendirme yalnızca tüm ölçek daraltma kuralları tetiklendiğinde ölçeklendirilir.

Otomatik ölçeklendirme, bu kuralların her birinin scaleAction değeriyle belirlenen yeni kapasiteyi hesaplar. Hizmet kullanılabilirliğini sağlamak için otomatik ölçeklendirme, belirtilen maksimum kapasiteye ulaşmak için mümkün olduğunca az ölçeklendirilir. Örneğin, biri kapasiteyi %50 azaltan, diğeri de kapasiteyi üç örnek azaltan iki ölçek daraltma kuralı varsayalım. İlk kural beş örnekle, ikinci kural yediyle sonuçlanırsa, otomatik ölçeklendirme yedi örneğe ölçeklendirilir.

Otomatik ölçeklendirme bir ölçeklendirme eyleminin sonucunu her hesaplıyorsa, bu eylemin ölçeği genişletme eylemini tetikleyip tetiklemeyeceğini değerlendirir. Ölçek eyleminin karşı ölçek eylemini tetiklediği senaryo, çırpma olarak bilinir. Otomatik ölçeklendirme, ölçeği genişletmeyi önlemek için bir ölçeklendirme eylemini erteleyebilir veya kuralda belirtilenden daha az bir sayıya göre ölçeklendirilebilir. Dokunma hakkında daha fazla bilgi için bkz . Otomatik ölçeklendirmede dokunma.

Sonraki adımlar

Otomatik ölçeklendirme hakkında daha fazla bilgi edinin: