Otomatik ölçeklendirme faktörlerini belirleme

Tamamlandı

Otomatik ölçeklendirme, hangi koşullar altında bir web uygulamasının ölçeğinin genişletileceğini ve tekrar geri alınacağını belirlemenize olanak tanır. Etkin bir otomatik ölçeklendirme, talep düştüğünde maliyetleri yönetirken en yoğun saatlerde oluşan yoğun isteği işlemek için yeterli kullanılabilir kaynağın bulunmasını sağlar.

Otomatik ölçeklendirmeyi kaynak kullanımı temelinde, faktörlerin bileşimine göre ölçeğin ne zaman genişletileceğini ve ne zaman daraltılacağını algılayacak şekilde yapılandırabilirsiniz. Otomatik ölçeklendirmeyi bir zamanlamaya göre gerçekleştirilecek şekilde de yapılandırabilirsiniz.

Bu ünitede, bir hizmeti otomatik ölçeklendirmek için kullanılabilecek faktörleri belirtmeyi öğreneceksiniz.

Otomatik ölçeklendirme ve App Service planı

Otomatik ölçeklendirme, web uygulaması tarafından kullanılan App Service Planının bir özelliğidir. Web uygulaması ölçeğini genişlettiğinde Azure uygulamanın App Service Planı tarafından tanımlanan donanımların yeni örneklerini başlatır.

Kontrolsüz çalışan otomatik ölçeklendirmeyi önlemek için App Service Planında örnek sınırı vardır. Daha pahalı fiyatlandırma katmanlarındaki planların sınırı daha yüksek olur. Otomatik ölçeklendirme bu sınırdan daha fazla örnek oluşturamaz.

Dekont

Tüm App Service Planı fiyatlandırma katmanları otomatik ölçeklendirmeyi desteklemez.

Otomatik ölçeklendirme koşulları

Otomatik ölçeklendirme koşulları oluşturarak nasıl otomatik ölçeklendirme yapılacağını siz belirlersiniz. Azure otomatik ölçeklendirme için iki seçenek sağlar:

  • Disk kuyruğunun uzunluğu veya işlenmeyi bekleyen HTTP isteklerinin sayısı gibi bir ölçüme göre ölçeklendirin.
  • Zamanlamaya göre belirli bir örnek sayısında ölçeklendirme. Örneğin, günün belirli bir saatinde, belirli bir tarihte veya haftanın bir gününde ölçeği genişletmek için düzenleme yapabilirsiniz. Ayrıca bir bitiş tarihi belirtirsiniz ve sistem şu anda yeniden ölçeklendirilir.

Belirli bir örnek sayısına ölçeklendirmek, yalnızca tanımlı bir örnek sayısına kadar ölçeği genişletmenize olanak tanır. Ölçeği artımlı olarak genişletmeniz gerekiyorsa, ölçüm ve zamanlama tabanlı otomatik ölçeklendirmeyi aynı otomatik ölçeklendirme koşulunda bir araya getirebilirsiniz. Dolayısıyla, HTTP isteklerinin sayısı bir eşiği aştığında ama yalnızca günün belirli saatlerinde sistemin ölçeği genişletmesi için düzenleme yapabilirsiniz.

Farklı zamanlamaları ve ölçümleri işlemek üzere birden çok otomatik ölçeklendirme koşulu oluşturabilirsiniz. Azure, bu koşullardan herhangi biri geçerli olduğunda hizmetinizi otomatik olarak ölçekler. App Service Planı'nın, diğer koşullardan hiçbiri geçerli değilse kullanılan varsayılan bir koşulu da vardır. Bu koşul her zaman etkindir ve zamanlaması yoktur.

Otomatik ölçeklendirme kuralları için ölçümler

Ölçüme göre otomatik ölçeklendirme için bir veya birden çok otomatik ölçeklendirme kuralı tanımlamanız gerekir. Otomatik ölçeklendirme kuralı izlenecek ölçümü ve bu ölçüm tanımlı eşiği geçtiğinde otomatik ölçeklendirmenin nasıl yanıt vereceğini belirtir. Web uygulaması için şu ölçümleri izleyebilirsiniz:

  • CPU Yüzdesi. Bu ölçüm tüm örnekler genelinde CPU kullanımının göstergesidir. Yüksek bir değer örneklerin CPU'ya bağımlı hale geldiğini gösterir ve bu da istemci isteklerinin işlenmesinde gecikmelere neden olabilir.
  • Bellek Yüzdesi. Bu ölçüm tüm örnekler genelinde uygulamanın bellekte kapladığı alanı yakalar. Yüksek bir değer boş bellek miktarının düşük olabileceğini gösterir ve bir veya birden çok örneğin başarısız olmasına neden olabilir.
  • Disk Kuyruğu Uzunluğu. Bu ölçüm tüm örnekler genelinde bekleyen G/Ç isteklerinin sayısıdır. Yüksek bir değer disk çekişmesi oluşabileceği anlamına gelir.
  • Http Kuyruğu Uzunluğu. Bu ölçüm web uygulaması tarafından işlenmek üzere kaç istemci isteğinin beklediğini gösterir. Bu sayı büyükse istemci istekleri HTTP 408 (Zaman Aşımı) hatalarıyla başarısız olabilir.
  • Veri Girişi. Bu ölçüm tüm örnekler genelinde alınan bayt sayısıdır.
  • Veri Çıkışı. Bu ölçüm, tüm örnekler tarafından gönderilen bayt sayısıdır.

Diğer Azure hizmetlerinin ölçümleri temelinde de ölçeklendirme yapabilirsiniz. Örneğin, web uygulaması bir Service Bus Kuyruğundan alınan istekleri işlerse, Azure Service Bus Kuyruğunda tutulan öğelerin sayısı kritik bir uzunluğu aşarsa web uygulamasının daha fazla örneğini çalıştırmak isteyebilirsiniz.

Otomatik ölçeklendirme kuralının ölçümleri analiz etmesi

Otomatik ölçeklendirme, ölçüm değerlerindeki eğilimleri tüm örneklerde zaman içinde analiz ederek çalışır. Analiz çok adımlı bir işlemdir.

İlk adımda, otomatik ölçeklendirme kuralı tüm örnekler için zaman dilimi olarak adlandırılan bir süre boyunca ölçüm için alınan değerleri toplar. Her ölçümün kendi iç zaman dilimi vardır ama çoğu örnekte bu süre 1 dakikadır. Toplanan değer zaman toplama olarak bilinir. Kullanılabilir seçenekler Ortalama, Minimum, Maksimum, Toplam, Son ve Sayı'dır.

Bir dakikalık aralık, ölçümdeki herhangi bir değişikliğin otomatik ölçeklendirmeye değecek kadar uzun ömürlü olup olmadığının belirleneceği kısa bir aralıktır. Dolayısıyla otomatik ölçeklendirme kuralı ikinci bir adım daha gerçekleştirir. Bu adımda zaman toplama ile hesaplanan değerde kullanıcı tarafından tanımlanmış daha uzun bir zaman aralığı boyunca (Süre olarak bilinir) daha fazla toplama yapar. En kısa Süre 5 dakikadır. Örneğin Süre 10 dakika olarak ayarlanırsa, otomatik ölçeklendirme kuralı zaman dilimi için hesaplanan 10 değeri toplar.

Süre için toplama hesaplaması zaman diliminden farklı olabilir. Örneğin, zaman toplama Ortalama ise ve toplanan istatistik bir dakikalık zaman diliminde CPU Yüzdesi ise, her dakika söz konusu dakika için tüm örneklerde ortalama CPU yüzdesi kullanımı hesaplanır. Zaman dilimi istatistiği Maksimum olarak, kuralın Süresi ise 10 dakika olarak ayarlandıysa, CPU yüzdesi kullanımı için en fazla 10 ortalama değer, kural eşiğinin aşılıp aşılmadığını belirlemektir.

Otomatik ölçeklendirme eylemleri

Otomatik ölçeklendirme kuralı bir ölçümün eşiği aştığını algılarsa bir otomatik ölçeklendirme eylemi gerçekleştirebilir. Otomatik ölçeklendirme eylemi ölçeği genişletme veya ölçeği daraltma olabilir. Ölçeği genişletme eylemi örnek sayısını artırırken, ölçeği daraltma eylemi de örnek sayısını azaltır. Otomatik ölçeklendirme eylemi eşiğe nasıl tepki gösterileceğini saptamak için bir işleç (küçüktür, büyüktür, eşittir vb.) kullanır. Ölçeği genişletme eylemleri ölçüm değerini eşikle karşılaştırırken normalde büyüktür işlecini kullanır. Ölçeği daraltma eylemleri ölçüm değerini küçüktür işlecini kullanarak eşikle karşılaştırma eğilimi gösterir. Otomatik ölçeklendirme eylemi, kullanılabilir örnek sayısını artırmak veya azaltmak yerine sayıyı belirli bir düzeye de ayarlayabilir.

Otomatik ölçeklendirme eyleminin dakika cinsinden belirtilen bir bekleme süresi vardır. Bu süre boyunca ölçeklendirme kuralı yeniden tetiklenmez. Bunun amacı sisteme otomatik ölçeklendirme olayları arasında kararlı duruma gelme olanağı tanımaktır. Örnekleri başlatma ve kapatma işlemlerinin zaman aldığını anımsayın. Toplanan ölçümler birkaç dakika boyunca hiçbir anlamlı değişiklik göstermeyebilir. En kısa bekleme süresi beş dakikadır.

Otomatik ölçeklendirme kurallarını eşleştirme

İş yükü azaldığında ölçeği daraltmak için planlama yapmalısınız. Otomatik ölçeklendirme kurallarını aynı otomatik ölçeklendirme koşulunda çiftler halinde tanımlamayı göz önünde bulundurun. Bir otomatik ölçeklendirme kuralı ölçüm üst eşiği aştığında sistemde ölçeğin nasıl genişletileceğini belirtmelidir. Diğer kural ise aynı ölçüm alt eşiğin altına düştüğünde sistemde ölçeğin tekrar nasıl daraltılacağını tanımlamalıdır.

Otomatik ölçeklendirme kurallarını birleştirme

Tek bir otomatik ölçeklendirme koşulu birkaç otomatik ölçeklendirme kuralı (örneğin, bir ölçeği genişletme kuralı ve ona karşılık gelen ölçeği daraltma kuralı) içerebilir. Öte yandan, otomatik ölçeklendirme koşulundaki otomatik ölçeklendirme kurallarının birbiriyle doğrudan ilgili olması gerekmez. Aynı otomatik ölçeklendirme koşulunda aşağıdaki dört kuralı tanımlayabilirsiniz:

  • HTTP kuyruğu uzunluğu 10'u aşarsa, ölçeği 1 genişlet
  • CPU kullanımı %70'i aşarsa, ölçeği 1 genişlet
  • HTTP kuyruğu uzunluğu sıfıra eşit olursa, ölçeği 1 daralt
  • CPU kullanımı %50'nin altına düşerse, ölçeği 1 daralt

Ölçeği genişletmenin yapılıp yapılmayacağını belirlerken, ölçeği genişletme kurallarından herhangi biri karşılanırsa otomatik ölçeklendirme eylemi gerçekleştirilir (HTTP kuyruğu uzunluğu 10'u veya CPU kullanımı %70'i aşıyor). Ölçeği daraltırken, otomatik ölçeklendirme eylemi yalnızca tüm ölçeklendirme kuralları karşılandığında çalışır (HTTP kuyruğu uzunluğu sıfıra düşer ve CPU kullanımı %50'nin altına düşer). Ölçek daraltma kurallarından yalnızca biri karşılanırsa ölçeği daraltmanız gerekiyorsa, kuralları ayrı otomatik ölçeklendirme koşullarında tanımlamanız gerekir.