Otomatik Ölçeklendirme ayarlarını anlama

Otomatik ölçeklendirme ayarları, uygulamanızın dalgalı yükünü işlemek için doğru kaynak miktarına 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 ayarının anatomisi ayrıntılı bir şekilde ele alınır. Makale, bir ayarın şeması ve özellikleriyle başlar ve yapılandırılabilir farklı profil türlerinde yol gösterir. Son olarak, makalede Azure'daki Otomatik Ölçeklendirme özelliğinin herhangi bir zamanda yürütülecek profili nasıl değerlendirdiği açıklanır.

Otomatik ölçeklendirme ayarı şeması

Otomatik ölçeklendirme ayarı şemasını göstermek için aşağıdaki Otomatik Ölçeklendirme ayarı kullanılır. Bu Otomatik Ölçeklendirme ayarının şunlara sahip olduğunu unutmayın:

  • Bir 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 ortalama CPU yüzdesi ölçümü son 10 dakika için yüzde 85'ten büyük olduğunda tetiklenir.
    • Sanal makine ölçek kümesinin ortalaması son bir dakika için yüzde 60'ın altında olduğunda ölçek daraltma kuralı tetiklenir.

Not

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

{
  "id": "/subscriptions/s1/resourceGroups/rg1/providers/microsoft.insights/autoscalesettings/setting1",
  "name": "setting1",
  "type": "Microsoft.Insights/autoscaleSettings",
  "location": "East US",
  "properties": {
    "enabled": true,
    "targetResourceUri": "/subscriptions/s1/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1",
    "profiles": [
      {
        "name": "mainProfile",
        "capacity": {
          "minimum": "1",
          "maximum": "4",
          "default": "1"
        },
        "rules": [
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/s1/resourceGroups/rg1/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/s1/resourceGroups/rg1/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"
            }
          }
        ]
      }
    ]
  }
}
Section Öğe adı Açıklama
Ayar ID 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 location Otomatik Ölçeklendirme ayarının konumu. Bu konum, ölçeklendirilmekte olan kaynağın konumundan farklı olabilir.
properties targetResourceUri Ölçeklendirilmekte olan kaynağın kaynak kimliği. Kaynak başına yalnızca bir Otomatik Ölçeklendirme ayarına sahip olabilirsiniz.
properties Profil 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.
profil name Profilin adı. Profili tanımlamanıza yardımcı olacak herhangi bir ad seçebilirsiniz.
profil Capacity.maximum İzin verilen maksimum kapasite. Bu profil yürütülürken Otomatik Ölçeklendirme'nin kaynağınızı bu sayınızın üzerine ölçeklendirmemesini sağlar.
profil Capacity.minimum İzin verilen en düşük kapasite. Bu profil yürütülürken Otomatik Ölçeklendirme'nin kaynağınızı bu sayınızın altına ölçeklendirmemesini sağlar.
profil Capacity.default Kaynak ölçümünü okurken bir sorun varsa (bu örnekte "vmss1" CPU'sunda") ve geçerli kapasite varsayılanın altındaysa, Otomatik Ölçeklendirme ölçeği varsayılan değere genişletilir. Bu, kaynağın kullanılabilirliğini sağlamak için kullanılır. Geçerli kapasite zaten varsayılan kapasiteden yüksekse, Otomatik Ölçeklendirme ölçeği daraltmaz.
profil rules Otomatik ölçeklendirme, profildeki kuralları kullanarak maksimum ve minimum kapasiteler arasında otomatik olarak ölçeklendirilir. Bir profilde birden çok kuralınız olabilir. Genellikle iki kural vardır: biri ölçeğin ne zaman genişletileceğini, diğeri ise ölçeğin ne zaman genişletileceğini belirlemek için.
Kural metricTrigger Kuralın ölçüm koşulunu tanımlar.
metricTrigger metricName Ö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 Ö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 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 örnekleme yapılacağını belirler.
metricTrigger timeWindow Ölçümler için geriye bakma süresi. Örneğin, timeWindow = "PT10M" , Otomatik Ölçeklendirme her çalıştığında son 10 dakikadaki ölçümleri sorguladığını gösterir. Zaman penceresi ölçümlerinizin normalleştirilmesine olanak tanır ve geçici ani artışlara tepki vermekten kaçınıyor.
metricTrigger timeAggregation Ö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 1 dakikalık örneği alın ve bunların ortalamasını alın.
Kural scaleAction Kuralın metricTrigger'ı tetiklendiğinde gerçekleştirecek eylem.
scaleAction yön Ölçeği genişletmek için "Artır" veya ölçeği daraltmak için "Azalt".
scaleAction değer Kaynağın kapasitesini artırma veya azaltma.
scaleAction cooldown Yeniden ölçeklendirmeden önce ölçeklendirme işleminden sonra beklenmesi gereken süre. Örneğin, bekleme süresi = "PT10M" ise, Otomatik Ölçeklendirme 10 dakika daha ölçeklendirmeyi denemez. Bekleme süresi, örneklerin eklenmesi veya kaldırılmasından sonra ölçümlerin kararlı hale getirilmesine izin vermektir.

Profilleri otomatik ölçeklendirme

Üç tür Otomatik Ölçeklendirme profili vardır:

  • Normal profil: En yaygın profil. Kaynağınızı haftanın gününe veya belirli bir güne göre ölçeklendirmeniz gerekmiyorsa, normal bir profil kullanabilirsiniz. Bu profil daha sonra ölçeğin ne zaman genişletileceği ve ne zaman daraltılması gerektiğini belirten ölçüm kurallarıyla yapılandırılabilir. Tanımlanmış yalnızca bir normal profiliniz olmalıdır.

    Bu makalenin önceki bölümlerinde kullanılan örnek profil, normal bir profil örneğidir. Kaynağınız için statik örnek sayısı olarak ölçeklendirilecek bir profil ayarlamanın da mümkün olduğunu unutmayın.

  • Sabit tarih profili: Bu profil özel durumlar içindir. Örneğin, 26 Aralık 2017'de (PST) önemli bir etkinliğiniz olduğunu varsayalım. Kaynağınızın minimum ve maksimum kapasitelerinin o gün farklı olmasını ancak yine de aynı ölçümlere göre ölçeklendirilmesini istiyorsunuz. Bu durumda, ayarınızın profil listesine sabit bir tarih profili eklemeniz gerekir. Profil yalnızca olay gününde çalışacak şekilde yapılandırılmıştır. Diğer herhangi bir gün için Otomatik Ölçeklendirme normal 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: Bu profil türü, bu profilin her zaman haftanın belirli bir gününde kullanıldığından emin olmanıza olanak tanır. Yinelenme profillerinin yalnızca başlangıç saati vardır. Sonraki yinelenme profili veya sabit tarih profili başlatılacak şekilde ayarlanana kadar çalışır. Aynı ayarda tanımlanmış normal bir profil olsa bile, yalnızca bir yinelenme profiline sahip otomatik ölçeklendirme ayarı bu profili çalıştırır. Aşağıdaki iki örnek, bu profilin nasıl kullanıldığını göstermektedir:

    Örnek 1: Hafta içi ve hafta sonları

    Hafta sonları maksimum kapasitenizin 4 olmasını istediğinizi varsayalım. Daha fazla yük beklediğiniz için hafta içi günlerde maksimum kapasitenizin 10 olmasını istersiniz. Bu durumda, ayarınız biri hafta sonları, diğeri de hafta içi çalıştırılacak iki yinelenme profili içerir. Ayar şöyle görünür:

    "profiles": [
    {
    "name": "weekdayProfile",
    "capacity": {
        ...
    },
    "rules": [{
        ...
    }],
    "recurrence": {
        "frequency": "Week",
        "schedule": {
            "timeZone": "Pacific Standard Time",
            "days": [
                "Monday"
            ],
            "hours": [
                0
            ],
            "minutes": [
                0
            ]
        }
    }}
    },
    {
    "name": "weekendProfile",
    "capacity": {
        ...
    },
    "rules": [{
        ...
    }]
    "recurrence": {
        "frequency": "Week",
        "schedule": {
            "timeZone": "Pacific Standard Time",
            "days": [
                "Saturday"
            ],
            "hours": [
                0
            ],
            "minutes": [
                0
            ]
        }
    }
    }]
    

    Yukarıdaki ayar, her yineleme profilinin bir zamanlamasına sahip olduğunu gösterir. Bu zamanlama, profilin ne zaman çalışmaya başlayacağını belirler. Başka bir profil çalıştırma zamanı geldiğinde profil durdurulur.

    Örneğin, önceki ayarda "weekdayProfile" Pazartesi günü saat 12:00'de başlayacak şekilde ayarlanmıştır. Bu, bu profilin Pazartesi günü saat 12:00'de çalışmaya başlayacağı anlamına gelir. Cumartesi günü saat 12:00'ye kadar devam eder ve "weekendProfile" çalışmaya başlayacak şekilde zamanlanır.

    Örnek 2: İş saatleri

    İş saatleri içinde bir ölçüm eşiğine (09:00-17:00) sahip olmak istediğinizi ve diğer tüm zamanlar için farklı bir eşik istediğinizi varsayalım. Ayar şöyle görünür:

    "profiles": [
    {
    "name": "businessHoursProfile",
    "capacity": {
        ...
    },
    "rules": [{
        ...
    }],
    "recurrence": {
        "frequency": "Week",
        "schedule": {
            "timeZone": "Pacific Standard Time",
            "days": [
                "Monday", “Tuesday”, “Wednesday”, “Thursday”, “Friday”
            ],
            "hours": [
                9
            ],
            "minutes": [
                0
            ]
        }
    }
    },
    {
    "name": "nonBusinessHoursProfile",
    "capacity": {
        ...
    },
    "rules": [{
        ...
    }]
    "recurrence": {
        "frequency": "Week",
        "schedule": {
            "timeZone": "Pacific Standard Time",
            "days": [
                "Monday", “Tuesday”, “Wednesday”, “Thursday”, “Friday”
            ],
            "hours": [
                17
            ],
            "minutes": [
                0
            ]
        }
    }
    }]
    

    Yukarıdaki ayar, "businessHoursProfile" öğesinin Pazartesi günü 09:00'da çalışmaya başladığını ve 17:00'ye kadar devam ettiğini gösterir. "nonBusinessHoursProfile" o zaman çalışmaya başlar. "nonBusinessHoursProfile" Salı 09:00'a kadar çalışır ve ardından "businessHoursProfile" yeniden devralır. Bu, Cuma günü saat 17:00'ye kadar yineler. Bu noktada, "nonBusinessHoursProfile" Pazartesi saat 09:00'a kadar çalışır.

Not

Azure portalındaki Otomatik Ölçeklendirme kullanıcı arabirimi, yineleme profilleri için bitiş saatlerini zorlar ve Otomatik Ölçeklendirme ayarının varsayılan profilini yineleme profilleri arasında çalıştırmaya başlar.

Otomatik ölçeklendirme değerlendirmesi

Otomatik Ölçeklendirme ayarlarının birden çok profili olabileceği ve her profilin birden çok ölçüm kuralı olabileceği göz önüne alındığında, otomatik ölçeklendirme ayarının nasıl değerlendirildiğini anlamak önemlidir. Otomatik Ölçeklendirme işi her çalıştırıldığında, geçerli profili seçerek başlar. Ardından, Otomatik Ölçeklendirme en düşük ve en yüksek değerleri ve profildeki tüm ölçüm kurallarını değerlendirir ve ölçeklendirme eylemi gerekip gerekmediğini karar verir.

Otomatik Ölçeklendirme hangi profili seçecek?

Otomatik ölçeklendirme, profili seçmek için aşağıdaki sırayı kullanır:

  1. İlk olarak, şimdi çalışacak şekilde yapılandırılmış herhangi bir sabit tarih profilini arar. Varsa, Otomatik Ölçeklendirme bunu çalıştırır. Çalışması gereken birden çok sabit tarih profili varsa, Otomatik Ölçeklendirme ilki seçer.
  2. Sabit tarih profili yoksa, Otomatik Ölçeklendirme yinelenme profillerine bakar. Yinelenme profili bulunursa, bunu çalıştırır.
  3. Sabit tarih veya yinelenme profili yoksa, Otomatik Ölçeklendirme normal profili çalıştırır.

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

Otomatik Ölçeklendirme hangi profilin çalıştıracağını belirledikten sonra, profildeki tüm ölçek genişletme kurallarını değerlendirir (bunlar yön = "Artır" olan kurallardır).

Bir veya daha fazla ölçek genişletme kuralı tetiklenirse, Otomatik Ölçeklendirme bu kuralların her birinin scaleAction değeriyle belirlenen yeni kapasiteyi hesaplar. Daha sonra hizmet kullanılabilirliğini sağlamak için bu kapasitelerin maksimum ölçeğini genişletir.

Örneğin, geçerli kapasitesi 10 olan bir sanal makine ölçek kümesi olduğunu varsayalım. İki ölçek genişletme kuralı vardır: biri kapasiteyi yüzde 10 artırırken diğeri de kapasiteyi 3 sayı artırır. İlk kural 11 yeni kapasiteye, ikinci kural ise 13 kapasiteye neden olur. Hizmetin kullanılabilirliğini sağlamak için Otomatik Ölçeklendirme maksimum kapasiteye neden olan eylemi seçer, bu nedenle ikinci kural seçilir.

Ölçeği genişletme kuralı tetiklenmezse, Otomatik Ölçeklendirme tüm ölçeklendirme kurallarını değerlendirir ( yönü = "Azalt" olan kurallar). Otomatik ölçeklendirme yalnızca tüm ölçekleme kuralları tetiklenirse ölçek daraltma eylemini alır.

Otomatik ölçeklendirme, bu kuralların her birinin scaleAction değeriyle belirlenen yeni kapasiteyi hesaplar. Ardından, hizmet kullanılabilirliğini sağlamak için bu kapasitelerin en yüksek sayısını veren ölçek eylemini seçer.

Örneğin, geçerli kapasitesi 10 olan bir sanal makine ölçek kümesi olduğunu varsayalım. İki ölçek daraltma kuralı vardır: biri kapasiteyi yüzde 50 azaltan, diğeri de kapasiteyi 3 sayım azaltan kurallar. İlk kural 5 yeni kapasiteye, ikinci kural ise 7 kapasiteye neden olur. Hizmetin kullanılabilirliğini sağlamak için Otomatik Ölçeklendirme maksimum kapasiteye neden olan eylemi seçer, bu nedenle ikinci kural seçilir.

Sonraki adımlar

Aşağıdakilere başvurarak Otomatik Ölçeklendirme hakkında daha fazla bilgi edinin: