Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu Azure Well-Architected Framework Performans Verimliliği denetim listesi önerisi için geçerlidir:
| PE:05 | Ölçeklendirmeyi ve bölümleyi iyileştirme. Güvenilir ve denetimli ölçeklendirme ve bölümleme dahil edin. İş yükünün ölçek birimi tasarımı, ölçeklendirme ve bölümleme stratejisinin temelini oluşturur. |
|---|
Bu kılavuzda, bir iş yükünü ölçeklendirme ve bölümleme önerileri açıklanmaktadır. Ölçeklendirme, isteğe bağlı olarak bir iş yüküne ayrılan kaynakları artırma veya azaltma özelliğidir. Bölümleme, verileri ve işlemeyi birden çok kaynağa dağıtmak için iş yükünü daha küçük, yönetilebilir birimlere bölmeyi içerir. Ölçeklendirmeyen veya bölümlemeyen bir iş yükü, yüksek talep dönemlerinde düşük performans ve düşük talep dönemlerinde az kullanılan kapasiteyle karşılaşabilir.
Tanımlar
| Süre | Definition |
|---|---|
| Otomatik Ölçeklendirme | Bir hizmetin kapasite sınırlarını önceden tanımlanmış yapılandırmalara göre otomatik olarak ayarlayan ve gerektiğinde ölçeği artırmasına veya azaltmasına olanak sağlayan özellik. |
| Kapasite | Belirli bir hizmet veya özelliğin üst sınırı veya maksimum kapasitesi. |
| İstemci benzitesi (oturum benzimliği) | Tutarlı oturum yönetimi sağlamaya yardımcı olmak için isteklerin tek bir istemciden tek bir sunucu örneğine kasıtlı olarak yönlendirilmesi. |
| Tutarlılık (dağıtılmış veritabanı) | Dağıtılmış veritabanındaki birden çok düğümdeki verilerin tekdüzenliği, tüm çoğaltmaların belirli bir noktada aynı verilere sahip olmasını sağlar. |
| Tutarlılık (ilişkisel veritabanı) | Geçerli bir durumdan diğerine veritabanı getiren ve veri bütünlüğünü koruyan bir işlemin özelliği. |
| Tutarlılık düzeyi | Verilerin dağıtılmış bir veritabanı sisteminde nasıl ve ne zaman çoğaltıldığını tanımlayan ve tutarlılık ile performans arasındaki dengeyi belirleyen bir yapılandırma. |
| Veri kilitleme | Aynı verilerde eşzamanlı güncelleştirmeleri önlemek için kullanılan bir mekanizma. |
| Yatay ölçeklendirme | Belirli bir kaynak türünün örneklerini ekleyen bir ölçeklendirme yaklaşımı. |
| İyimser eşzamanlılık | Geleneksel kilitleme mekanizmaları yerine güncelleştirmeler yapmak için anlık görüntüleri kullanan veritabanlarını güncelleştirmeye yönelik bir yaklaşım. |
| Partitioning | Verileri fiziksel olarak ayrı veri depolarına bölme işlemi. |
| Ölçeklenebilirlik | Bir iş yükünün, değişen talep düzeylerini karşılamak için kapasite sınırlarını dinamik olarak değiştirme yeteneği. |
| Ölçek birimi | Birbirine orantılı olarak ölçeklendirilen bir kaynak grubu. |
| Durum benzitesi | aynı sunucunun aynı istemciden gelen sonraki istekleri işlemesi için istemci oturumu verilerinin tek bir sunucuda depolanması. |
| Dikey ölçeklendirme | Mevcut kaynaklara işlem kapasitesi ekleyen bir ölçeklendirme yaklaşımı. |
Hem ölçeklendirme hem de bölümleme, kaynakların verimli bir şekilde kullanıldığından ve iş yükünün değişen yükleri işleyebileceğinden emin olarak performans verimliliğine katkıda bulunur. Bu uygulamalar, uygulamaların esnek ve değişen taleplere uyarlanabilir olması gereken bulut ortamlarında özellikle önemlidir. Ölçeklendirme, artan talepleri karşılamak için iş yükü kapasitesini genişletebilmenizi sağlar. Bölümleme, artan bu ihtiyaçları karşılamak için görevleri veya verileri verimli bir şekilde bölmenize olanak tanır. Her iki işlemin de temeli, iş yükünün ölçek birimi tasarımıdır. İş yükünüzün nasıl büyümesi ve görevleri dağıtması gerektiğini belirler. Ölçeklendirme ve bölümleme için güvenilir ve denetimli bir yaklaşım ekleyerek olası iş yükü verimsizliklerini önleyebilirsiniz.
Ölçeklendirmeyi iyileştirme
Ölçeklendirmeyi iyileştirme, bir iş yükünün dalgalı taleplerini karşılamak için sunucu, örnek veya kaynak sayısını ayarlama işlemidir. İş yükünün performans düşüşü veya kapalı kalma süresi yaşamadan artan trafiği veya talepleri işleyebilmesini sağlar.
Ölçeklendirme stratejisi seçme
Ölçeklendirme stratejisini seçmek, bir iş yükünün kapasitesini belirli gereksinimlerine göre geliştirmek için dikey veya yatay yöntemler arasında seçim yapmaktır. Doğru stratejinin seçilmesi, kaynakların aşırı kullanma veya israf olmadan iş yükü taleplerini karşılayacak şekilde verimli bir şekilde ayarlanmasını sağlar. Doğru ölçeklendirme stratejisini seçmek için dikey ve yatay ölçeklendirme kullanım örneklerini ve bunların iş yükünüzün gereksinimlerini nasıl karşıladığını anlamanız gerekir.
Dikey ölçeklendirmeyi anlama. Dikey ölçeklendirmeyi kullanarak, daha büyük bir sunucuya veya örnek boyutuna yükseltme gibi tek bir kaynağın kapasitesini artırabilirsiniz. Dikey ölçeklendirme, iş yükünün tek bir örnekteki daha fazla işlem gücünden, bellekten veya diğer kaynaklardan yararlanabilmesi için kullanışlıdır. Dikey ölçeklendirme, kolayca daha küçük parçalara ayrılmayan veya uygulama mimarisi yatay ölçeklendirmeyi desteklemeyen iş yükleri için uygundur.
Yatay ölçeklendirmeyi anlama. Yatay ölçeklendirmeyi kullanarak, iş yükünü birden çok sunucuya dağıtmak için daha fazla örnek veya kaynak ekleyebilirsiniz. Yatay ölçeklendirme, geliştirilmiş dayanıklılık, artan kapasite ve artan trafik veya iş yükü taleplerinin üstesinden gelebilme gibi avantajlar sunar. Birden çok düğümde çalışacak şekilde tasarlanmış buluta özel uygulamalar için etkilidir. Yatay ölçeklendirme, bağımsız olarak çalışan daha küçük parçalara ayrılabilen iş yükleri için uygundur.
İş yükünü anlama. Dikey veya yatay ölçeklendirmenin uygunluğu, iş yükünün belirli özelliklerine ve gereksinimlerine bağlıdır. Aşağıdaki alanlarda düzenli performans izleme ve test etme, zaman içinde ölçeklendirme stratejisini iyileştirmeye yardımcı olabilir:
Gereksinimler: Kaynak talepleri, ölçeklenebilirlik gereksinimleri ve iş yükünün sınırlamaları gibi faktörleri göz önünde bulundurarak iş yükünün belirli gereksinimlerini anlayın.
Ölçek birimleri: Birlikte ölçeklendirilmesi beklenen bileşenler için bir ölçek birimi tasarımı oluşturun. Örneğin, 100 sanal makine fazladan iş yükünü işlemek için iki kuyruk ve üç depolama hesabı gerektirebilir. Ölçek birimi 100 sanal makine, iki kuyruk ve üç depolama hesabı olabilir. Kapasite kullanımı dalgalanması yaşanan tüm bileşenleri bağımsız olarak ölçeklendirmeniz gerekir.
Mimari: Uygulama mimarisinin tasarımını değerlendirin. Bazı uygulamalar, birden çok örneğe kolayca dağıtılabilen durum bilgisi olmayan bileşenlerle yatay olarak ölçeklendirilecek şekilde doğal olarak tasarlanabilir. Diğer uygulamalar, dikey ölçeklendirmeyi daha uygun hale getiren durum bilgisi olan bileşenlere veya bağımlılıklara sahip olabilir. İş yükünün ölçeklenebilirlik ve esneklik gereksinimlerini değerlendirin.
Ölçeklendirilecek altyapıyı tasarlama
Ölçeklendirilecek altyapıyı tasarlamak, kaynakları gerektiği gibi ekleyerek veya ayarlayarak artan talepleri ve iş yükünü işleyebilen bir mimari oluşturma işlemidir. Büyümeyi karşılamak için yatay veya dikey olarak ölçeklenebilen çözümleri planlamayı ve uygulamayı içerir. Stratejiler arasında performans sorunlarına neden olabilecek tekillerden kaçınma ve bağımsız ölçeklenebilirlik sağlamak için uygulama bileşenlerini ayırma yer alır. Bir iş yükünü ölçeklenebilir olacak şekilde tasarladığınızda, iş yükünü birden çok kaynağa etkili bir şekilde dağıtabilir ve bu da performans sorunlarını önler ve kaynak kullanımını en üst düzeye çıkarır.
Teklilerden kaçının. İş yükünün tamamı için tek bir merkezi kaynak kullanmaktan kaçınmanız gerekir. Bunun yerine, daha iyi ölçeklenebilirlik, hataya dayanıklılık ve performans için iş yükünüzü birden çok kaynağa dağıtabilirsiniz. İş yükü kaynaklarında tekillerden kaçınmak için bazı belirli örnekleri ve tasarım konularını keşfedin:
Kuyruk tabanlı yük dengeleme: İletileri işlemek için tek bir kuyruğa güvenmek yerine, işleme yükünü dağıtmak için iş yükünü birden çok kuyrukta bölümlemeniz önerilir. Daha iyi ölçeklenebilirlik ve paralel işleme sağlar.
Veri işleme: Tekil desenler genellikle veri işleme senaryolarında görünür ve bu senaryolarda işlemenin çok fazla olmadığı durumlar ortaya çıkar. Uzun süre çalışan görevleri, iş yükünü birden çok kaynağa dağıtmak ve paralellikten yararlanmak için daha iyi ölçeklenebilen daha küçük görevlere ayırın.
Tasarım desenleri: Fan-out/Fan-in veya Kanallar ve Filtreler gibi tasarım desenleri , iş akışlarında tekilleri önlemeye yardımcı olabilir. Bu desenler, işleme görevlerinin birden çok kaynak arasında dağıtılmasını sağlar ve ölçeklenebilirlik ile esnekliği artırır.
Bileşenleri ayırma. Uygulama bileşenlerini ayırmak, ölçeklenebilirlik tasarımının önemli bir yönüdür. Uygulamayı belirli iş yükü gereksinimlerine göre bağımsız olarak çalıştırabilen ve ölçeklendirebilen daha küçük, bağımsız bileşenlere ayırmayı içerir. Örneğin, talebin artması nedeniyle bir bileşen daha fazla kaynak gerektiriyorsa, diğer bileşenleri etkilemeden bu bileşeni ölçeklendikleyebilirsiniz. Bu esneklik, verimli kaynak ayırmayı sağlar ve performans sorunlarını önler. Bileşenleri ayırarak hataları yalıtabilir ve uygulamanın genel üzerindeki etkisini en aza indirebilirsiniz. Bir bileşen başarısız olursa, diğer bileşenler bağımsız olarak çalışmaya devam edebilir.
Ayrılmış bileşenlerin bakımı ve güncelleştirmesi daha kolaydır. Bağımsız oldukları için, bir bileşende yapılan değişiklikler veya güncelleştirmeler diğerlerini etkilemeden yapılabilir. Ölçeklenebilirlik için uygulama bileşenlerini ayırmak için şu yönergeleri izleyin:
Endişelerin ayrılması: Uygulamanızın sorumluluklarını ve işlevlerini belirleyin. Sorumlulukları kendi görevlerine göre ayrı bileşenlere bölün. Örneğin, kullanıcı kimlik doğrulaması, veri işleme ve kullanıcı arabirimi için ayrı bileşenleriniz olabilir.
Gevşek bağlantı: İyi tanımlanmış arabirimler ve protokoller aracılığıyla birbirleriyle iletişim kurmak için bileşenleri tasarlar. Bu tasarım bileşenler arasındaki bağımlılıkları azaltır ve tek tek bileşenlerin daha kolay değiştirilmesini veya ölçeklendirilmesini sağlar.
Zaman uyumsuz iletişim: Bileşenleri daha fazla ayırmak için ileti kuyrukları veya olay temelli mimariler gibi zaman uyumsuz iletişim desenlerini kullanın. Bu desenler, bileşenlerin görevleri kendi hızlarında bağımsız olarak işlemesine olanak tanıyarak genel ölçeklenebilirliği artırır.
Mikro hizmetler: Belirli iş işlevlerine odaklanan küçük ve bağımsız hizmetler olan mikro hizmetleri uygulamayı göz önünde bulundurun. Her mikro hizmet bağımsız olarak geliştirilebilir, dağıtılabilir ve ölçeklendirilebilir ve daha fazla esneklik ve ölçeklenebilirlik sağlar.
Ölçeklendirmek için uygulama tasarlama
Bir iş yükünü ölçeklendirirken, yükü dağıtmak için uygulamayı tasarlamanız gerekir. Altyapı düzeyinde daha fazla çoğaltma ekleyebilmeniz, uygulamanızın çoğaltmaları kullanabileceği anlamına gelmez. Bir uygulamayı ölçeklendirilecek şekilde tasarlamak, iş yükünü kaynaklara dağıtarak artan talepleri işleyebilmesi için bir uygulamayı yapılandırmaktır. Mümkünse tek bir örnek için istemci benzimi, veri kilitleme veya durum benzimi gerektiren çözümlerden kaçının. Bir istemciyi veya işlemi kullanılabilir kapasiteye sahip bir kaynağa yönlendirmek istiyorsunuz. Uygulama ölçeklenebilirliği için tasarım yapmak için aşağıdaki stratejileri göz önünde bulundurun:
Sunucu tarafı oturum durumunu ortadan kaldırın. Mümkün olduğunda durum bilgisi olmayan uygulamalar tasarlamanız gerekir. Durum bilgisi olan uygulamalar için sunucunuzun dışında bir durum deposu kullanmanız gerekir. Oturum durumunu dışlaştırma, oturum verilerini uygulama sunucusu veya kapsayıcı dışında depolama uygulamasıdır. Oturum verilerini birden çok sunucu veya hizmet arasında dağıtmak için oturum durumunu dışlaştırabilir ve dağıtılmış bir ortamda sorunsuz oturum yönetimini etkinleştirebilirsiniz. Oturum durumunu dışlarken aşağıdakileri göz önünde bulundurun:
Oturum gereksinimlerinizi değerlendirin. Depolanması ve yönetilmesi gereken oturum verilerini anlayın. Oturum özniteliklerini, oturum zaman aşımlarını ve oturum çoğaltma veya kalıcılık için belirli gereksinimleri göz önünde bulundurun. Oturum durumunuzun boyutunu ve okuma ve yazma işlemlerinin sıklığını belirleyin.
Bir çözüm seçin. Performans ve ölçeklenebilirlik gereksinimlerinizle uyumlu bir depolama çözümü seçin. Seçenekler arasında dağıtılmış önbellek, veritabanı veya oturum durumu hizmeti kullanma yer alır. Seçiminizi yaparken veri tutarlılığı, gecikme süresi ve ölçeklenebilirlik gibi faktörleri göz önünde bulundurun.
Uygulamanızı ayarlayın. Uygulamanızı seçilen oturum durumu depolama çözümünü kullanacak şekilde güncelleştirin. Dış depolama hizmetine bağlanmak için uygulamanızın yapılandırma dosyalarını veya kodunu değiştirmeniz gerekebilir.
Mantığınızı güncelleştirin. Dış depolama çözümünden oturum verilerini depolamak ve almak için uygulamanızın oturum yönetimi mantığını değiştirin. Oturum durumunu yönetmek için depolama çözümü tarafından sağlanan API'leri veya kitaplıkları kullanmanız gerekebilir.
İstemci benzitesini ortadan kaldırın. İstemci benzitesi, oturum benzitesi veya yapışkan oturumlar olarak da bilinir. İstemci benceliğini ortadan kaldırdığınızda, istemciden gelen tüm istekleri aynı çoğaltmaya yönlendirmeden istemci isteklerini birden çok çoğaltmaya veya sunucuya eşit olarak dağıtırsınız. Bu yapılandırma, kullanılabilir çoğaltmaların istekleri işlemesine izin vererek uygulamaların ölçeklenebilirliğini ve performansını geliştirebilir.
Yük dengeleme algoritmanızı gözden geçirin. Yük dengeleme algoritması, bir arka uç örneğine çok fazla isteğin gönderildiği istenmeyen ve yapay istemci sabitlemesine neden olabilir. Algoritma her zaman aynı kullanıcıdan aynı örneğe istek gönderecek şekilde ayarlandıysa sabitleme gerçekleşebilir. İstekler birbirine çok benzerse de bu durum oluşabilir.
Veri kilitlemeyi ortadan kaldırın. Veri kilitleme tutarlılık sağlar ancak performans dezavantajları vardır. Kilit yükseltmelerine neden olabilir ve eşzamanlılık, gecikme süresi ve kullanılabilirliği olumsuz etkileyebilir. Veri kilitlemeyi ortadan kaldırmak için iyimser eşzamanlılık uygulamanız gerekir. İlişkisel olmayan veritabanları iyimser eşzamanlılık denetimi kullanmalıdır ve doğru tutarlılık düzeyine sahip olmalıdır. Veri bölümleme stratejiniz eşzamanlılık gereksinimlerinizi de desteklemelidir.
Dinamik hizmet bulma özelliğini kullanın. Dinamik hizmet bulma, hizmetleri otomatik olarak algılama ve dağıtılmış bir sisteme kaydetme işlemidir. İstemcilerin belirli örneklerle sıkı bir şekilde bağlanmadan kullanılabilir hizmetleri bulmasını sağlar. İstemcilerin iş yükündeki belirli bir örneğe doğrudan bağımlılık alamaması gerekir. Bu bağımlılıkları önlemek için istemci bağlantılarını dağıtmak ve yeniden dağıtmak için bir ara sunucu kullanmanız gerekir. Proxy, istemciler ve hizmetler arasında bir aracı görevi görür ve istemcileri etkilemeden hizmetlerin eklenmesine veya kaldırılmasına olanak tanıyan bir soyutlama katmanı sağlar.
Arka plan görevlerini kullanın. Bir uygulama ölçeklendirildiğinde, artan bir iş yükünü veya daha fazla sayıda eşzamanlı isteği işleyebilir. Yoğun görevlerin arka plan görevleri olarak boşaltılması, ana uygulamanın yoğun kaynak kullanan işlemlere gerek kalmadan kullanıcı isteklerini işlemesini sağlar. Görevleri arka plan görevleri olarak boşaltmak için şu adımları izleyin:
Uygulamanızda boşaltabileceğiniz YOĞUN CPU ve G/Ç yoğunluklu görevleri bulun. Bu görevler genellikle veritabanları veya ağ işlemleri gibi dış kaynaklarla yoğun hesaplamalar veya etkileşimler içerir.
Uygulamanızı arka plan görevlerini destekleyecek şekilde tasarlar. Yoğun görevleri ana uygulama mantığından ayırın ve arka plan görevlerini başlatmak ve yönetmek için bir mekanizma sağlayın.
Uygun teknolojiler veya çerçevelerle arka plan görevi işlemeyi uygulayın. Programlama diliniz veya platformunuz tarafından sağlanan zaman uyumsuz programlama, iş parçacığı oluşturma veya görev kuyrukları gibi özellikleri dahil edin. Ayrı görevlerde veya iş parçacıklarında yoğun işlemler içeren bu görevler eşzamanlı olarak çalıştırılabilir veya belirli aralıklarla çalıştırılacak şekilde zamanlanabilir.
Çok sayıda arka plan görevi varsa veya görevler önemli bir süre veya kaynak gerektiriyorsa dağıtın. Olası bir çözüm için Rakip Tüketiciler düzenine bakın.
Ölçeklendirmeyi yapılandırın
Ölçeklendirmeyi yapılandırmak, kaynakları iş yükü taleplerine göre dinamik olarak ayırmak için parametreleri ayarlama ve ayarlama işlemidir. Otomatik ölçeklendirme özelliklerini kullanma, hizmet ölçeklendirme sınırlarını anlama ve anlamlı yük ölçümleri uygulama gibi stratejileri kapsar. Uygun yapılandırma, bir uygulamanın verimliliği en üst düzeye çıkarırken değişen taleplere yanıt vermesini sağlar. Ölçeklendirmeyi yapılandırırken aşağıdaki stratejileri göz önünde bulundurun:
Hizmetleri otomatik ölçeklendirme ile kullanma. Otomatik ölçeklendirme özelliği, talebi karşılamak için altyapıyı otomatik olarak ölçeklendirir. Yerleşik otomatik ölçeklendirme özellikleriyle hizmet olarak platform (PaaS) tekliflerini kullanın. PaaS'ta ölçeklendirme kolaylığı önemli bir avantajdır. Örneğin, sanal makinelerin ölçeğini genişletme ayrı bir yük dengeleyici, istemci isteği işleme ve harici olarak depolanmış durum gerektirir. PaaS teklifleri bu görevlerin çoğunu yönetir.
Otomatik ölçeklendirmeyi kısıtla. Gereksiz maliyetlere neden olabilecek aşırı ölçeklendirmeyi en aza indirmek için otomatik ölçeklendirme sınırları ayarlayın. Bazen ölçeklendirme sınırları ayarlayamazsınız. Böyle durumlarda, bileşen en yüksek ölçek sınırına ulaştığında ve fazla ölçeklendirildiğinde sizi bilgilendirmek için uyarılar ayarlamanız gerekir.
Hizmet ölçeklendirme sınırlarını anlama. Hizmet ölçeklendirme sınırlarını, artışlarını ve kısıtlamalarını anladığınızda, bir hizmeti seçerken bilinçli kararlar alabilirsiniz. Ölçeklendirme sınırları, seçtiğiniz hizmetin beklenen iş yükünü işleyip işleyemeyeceğini, verimli bir şekilde ölçeklendirebileceğini ve uygulamanızın performans gereksinimlerini karşılayıp karşılamayacağını belirler. Dikkate alınacak ölçeklendirme sınırları şunlardır:
Ölçeklendirme sınırları: Ölçeklendirme sınırları, bir konumun veya hizmetin işleyebileceği maksimum kapasitedir. Hizmetin beklenen iş yüküne uyum sağlamasına ve performans düşüşü olmadan en yüksek kullanımı işlemesine yardımcı olması için bu sınırları bilmeniz önemlidir. Her kaynağın üst ölçek sınırı vardır. Ölçek sınırlarını aşmanız gerekiyorsa iş yükünüzü bölümlemeniz gerekir.
Ölçeklendirme artışları: Hizmetler tanımlı artışlarla ölçeklendirilir. Örneğin, işlem hizmetleri örneklere ve podlara göre ölçeklendirilirken veritabanları örneklere, işlem birimlerine ve sanal çekirdeklere göre ölçeklendirilebilir. Kaynak ayırmayı iyileştirmek ve kaynak eşlemesini önlemek için bu artışları anlamak önemlidir.
Ölçeklendirme kısıtlamaları: Bazı hizmetler ölçeği artırmanıza veya genişletmenize olanak sağlar, ancak ölçeklendirmeyi otomatik olarak tersine çevirme yeteneğinizi sınırlandırabilirsiniz. Ölçeği el ile daraltmak zorunda kalırsınız veya yeni bir kaynağı yeniden dağıtmanız gerekebilir. Bu sınırlamalar genellikle iş yükünü korumak için kullanılır. Ölçeği azaltma veya ölçeği daraltma, iş yükünün kullanılabilirliğini ve performansını etkileyebilir. Bir hizmet, iş yükünün etkili bir şekilde çalışması için yeterli kaynağa sahip olduğundan emin olmak için belirli sınırlamaları veya kısıtlamaları zorunlu kabilir. Bu sınırlamalar, özellikle dağıtılmış sistemlerde veri tutarlılığını ve eşitlemeyi etkileyebilir. Hizmetin ölçeği artırma veya genişletme sırasında veri çoğaltma ve tutarlılığı işlemeye yönelik mekanizmaları olabilir, ancak ölçeği azaltma veya daraltma için aynı düzeyde destek sağlamayabilir.
Anlamlı yük ölçümleri kullanın. Ölçeklendirme, ölçeklendirme tetikleyicileri olarak anlamlı yük ölçümleri kullanmalıdır. Anlamlı yük ölçümleri CPU veya bellek gibi basit ölçümleri içerir. Ayrıca kuyruk derinliği, SQL sorguları, özel ölçüm sorguları ve HTTP kuyruğu uzunluğu gibi daha gelişmiş ölçümler de içerir. Ölçeklendirme tetikleyiciniz olarak basit ve gelişmiş yük ölçümlerinin bir bileşimini kullanmayı göz önünde bulundurun.
Arabellek kullanın. Arabellek, talepteki ani artışları işlemek için kullanılabilen kullanılmayan kapasitedir. İş yükünde beklenmeyen ani artışlar için iyi tasarlanmış iş yükü planları. Yatay ve dikey ölçeklendirme için ani artışları işlemek için bir arabellek eklemeniz gerekir.
Dokunmayı önleyin. Kanat çırpma, bir ölçek olayı karşı ölçek olayını tetikleyerek sürekli ileri geri ölçeklendirme eylemi oluşturduğunda oluşan bir döngü koşuludur. Örneğin, ölçeği daraltma örnek sayısını azaltıyorsa, cpu kullanımının kalan örneklerde artmasına neden olabilir ve ölçeği genişletme olayı tetiklenebilir. Ölçeği genişletme olayı da CPU kullanımının düşmesine neden olur ve işlemi yineler.
Ölçeği genişletme ve ölçeği daraltma eşikleri arasında yeterli bir kenar boşluğu seçmek önemlidir. CPU kullanımında önemli bir fark sağlayan eşikler ayarlayarak sık ve gereksiz ölçeklendirme ve ölçeği genişletme eylemlerini önleyebilirsiniz.
Dağıtım Damgalarını kullanın. bir iş yükünü ölçeklendirmeyi kolaylaştıran teknikler vardır. Bir veya daha fazla ölçek birimi ekleyerek iş yükünü kolayca ölçeklendirmek için Dağıtım Damga Damgaları desenini kullanabilirsiniz.
Risk: Ölçeklendirme, kapasiteyi talebi karşılayacak şekilde ayarlayarak maliyetleri iyileştirmeye yardımcı olsa da, talebin yüksek olduğu uzun dönemlerde toplam maliyetin artmasına neden olabilir.
Ölçeklendirmeyi test etme
Ölçeklendirme testi, bir iş yükünün farklı talep düzeylerine nasıl yanıt verdiğini değerlendirmek için denetimli bir ortamda çeşitli iş yükü senaryolarının benzetimini içerir. İş yükünün verimli bir şekilde ölçeklendirilmesine yardımcı olur ve çeşitli yükler sırasında performans verimliliğini en üst düzeye çıkarır.
İş yükünüzün gerçek dünya koşullarında verimli bir şekilde ölçeklendirildiğinden emin olmanız gerekir. Üretim kurulumunuzu yansıtan bir ortamda yük ve stres testleri yapmak önemlidir. Üretim dışı ortamlarda gerçekleştirilen bu testler, hem dikey hem de yatay ölçeklendirme stratejilerini değerlendirmenize ve hangisinin performansı en etkili şekilde iyileştirdiğini belirlemenize olanak tanır. Ölçeklendirmeyi test etmek için önerilen bir yaklaşım aşağıdadır:
İş yükü senaryolarını tanımlayın. Kullanıcı trafiğini, eşzamanlı istekleri, veri hacmini veya kaynak kullanımını artırma gibi test etmeniz gereken temel iş yükü senaryolarını belirleyin.
Üretim benzeri test ortamını kullanın. Altyapı, yapılandırma ve veri açısından üretim ortamına benzeyen ayrı bir test ortamı oluşturun.
Performans ölçümlerini ayarlayın. Yanıt süresi, aktarım hızı, CPU ve bellek kullanımı ve hata oranları gibi ölçülecek performans ölçümlerini tanımlayın.
Test çalışmaları geliştirin. Farklı iş yükü senaryolarını simüle eden test çalışmaları geliştirin ve performansı çeşitli düzeylerde değerlendirmek için yükü kademeli olarak artırın.
Testleri yürütme ve izleme. Tanımlanan test çalışmalarını kullanarak testleri çalıştırın ve her yük düzeyinde performans verileri toplayın. İş yükü davranışını, kaynak tüketimini ve performans düşüşünü izleyin.
Ölçeklendirmeyi analiz etme ve iyileştirme. Performans sorunlarını, ölçeklenebilirlik sınırlamalarını veya iyileştirme alanlarını belirlemek için test sonuçlarını analiz edin. Ölçeklenebilirliği ve performansı geliştirmek için yapılandırmayı, altyapıyı veya kodu iyileştirin. Ölçeklendirmenin tamamlanması zaman alır, bu nedenle ölçeklendirme gecikmelerinin etkilerini test edin.
Adres bağımlılıkları. Olası bağımlılık sorunlarını bulun. İş yükünün bir alanında ölçeklendirme veya bölümleme, bağımlılıkta performans sorunlarına neden olabilir. Bir iş yükünün veritabanları gibi durum bilgisi olan bölümleri, bağımlılık performansı sorunlarının en yaygın nedenidir. Veritabanlarının yatay olarak ölçeklendirilmesi için dikkatli bir tasarım gerekir. Veritabanında daha fazla aktarım hızı sağlamak için iyimser eşzamanlılık veya veri bölümleme gibi ölçüleri dikkate almanız gerekir.
Ayarlamalardan sonra yeniden test edin. İyileştirmeleri doğrulayıp iş yükünün beklenen iş yüklerini verimli bir şekilde işleyebileceğinden emin olmak için iyileştirmeleri uyguladıktan sonra ölçeklenebilirlik testlerini tekrarlayın.
Denge: İş yükünüzün bütçe kısıtlamalarını ve maliyet verimliliği hedeflerini göz önünde bulundurun. Dikey ölçeklendirme, daha büyük ve daha güçlü kaynaklara duyulan ihtiyaç nedeniyle daha yüksek maliyetler içerebilir. Yatay ölçeklendirme, isteğe bağlı olarak eklenebilecek veya kaldırılabilir daha küçük örnekler kullanarak maliyet tasarrufu sağlar.
Bölüm iş yükü
Bölümleme, büyük bir veri kümesini veya iş yükünü bölümler olarak adlandırılan daha küçük, daha yönetilebilir bölümlere bölme işlemidir. Her bölüm verilerin veya iş yükünün bir alt kümesini içerir ve genellikle ayrı olarak depolanır veya işlenir. Bölümleme paralel işlemeye olanak tanır ve çekişmesini azaltır. İş yükünün daha küçük birimlere bölünmesi, uygulamanın her birimi bağımsız olarak işlemesine olanak tanır. Sonuç, kaynakların daha iyi kullanılması ve işleme sürelerinin daha hızlı olmasıdır. Bölümleme ayrıca verilerin birden çok depolama cihazına dağıtılmasında da yardımcı olur ve tek tek cihazlardaki yükü azaltır ve genel performansı artırır.
Bölümlemeyi anlama
Kullandığınız belirli bölümleme yaklaşımı, sahip olduğunuz veri veya iş yükünün türüne ve kullandığınız teknolojiye bağlıdır. Bölümleme için bazı yaygın stratejiler şunlardır:
Yatay bölümleme: Bu yaklaşımda veri kümesi veya iş yükü, değer aralıkları veya belirli öznitelikler gibi belirli ölçütlere göre bölünür. Her bölüm, tanımlanan ölçütleri karşılayan verilerin bir alt kümesini içerir.
Dikey bölümleme: Bu yaklaşımda veri kümesi veya iş yükü belirli özniteliklere veya sütunlara göre bölünür. Her bölüm, gerekli verilere daha verimli erişim sağlayan sütunların veya özniteliklerin bir alt kümesini içerir.
İşlevsel bölümleme: Bu yaklaşımda veriler veya iş yükü, gerçekleştirilmesi gereken belirli işlevlere veya işlemlere göre bölünür. Her bölüm belirli bir işlev için gerekli olan verileri veya bileşenleri içerir ve iyileştirilmiş işleme ve performans sağlar.
Bölümleme planlama
Bölümleme sırasında veri dağıtımı, sorgu desenleri, veri büyümesi ve iş yükü gereksinimleri gibi faktörleri göz önünde bulundurmak önemlidir. Bölümlemenin verimliliğini sağlamaya ve performans verimliliğini en üst düzeye çıkarmaya yardımcı olmak için doğru planlama ve tasarım gereklidir. Bölümleme işlemini bir sonradan ele alırsanız, zaten bakımını yapmak için canlı bir iş yükünüz olduğundan bu daha zordur. Veri erişim mantığını değiştirmeniz, bölümler arasında büyük miktarda veri dağıtmanız ve veri dağıtımı sırasında sürekli kullanımı desteklemeniz gerekebilir.
Bölümleme uygulama
Hangi bölümleme türünü kullanacağınıza karar verirken verilerinizin özelliklerini, erişim desenlerini, eşzamanlılık gereksinimlerini ve ölçeklenebilirlik hedeflerini analiz etmek önemlidir. Her bölümleme türünün kendi avantajları ve dikkate alınacak noktaları vardır. Her bölümleme türü için dikkate alınması gereken bazı faktörler şunlardır:
Yatay bölümleme , daha iyi ölçeklenebilirlik ve performans için verileri birden çok kaynak veya sunucu arasında dağıtmak istediğinizde uygundur. İş yükünün her bölümde bağımsız olarak paralelleştirilebildiği ve işlenebildiği durumlarda etkili olur. Birden çok kullanıcının veya işlemin eşzamanlı olarak veri kümesine erişebilmesi veya veri kümesini güncelleştirebilmesi gerektiğinde yatay bölümleme yapmayı göz önünde bulundurun.
Dikey bölümleme , belirli özniteliklere veya sütunlara sık erişilirken diğer özniteliklere daha az erişildiğinde uygundur. Dikey bölümleme, gereksiz veri alımını en aza indirerek gerekli verilere verimli erişim sağlar.
İşlevsel bölümleme , farklı işlevler verilerin farklı alt kümelerini gerektirdiğinde uygundur ve bağımsız olarak işlenebilir. İşlevsel bölümleme, her bölümün belirli işlemlere odaklanmasına izin vererek performansı iyileştirebilir.
Bölümleme test etme ve iyileştirme
Performansı geliştirmek için ayarlamalar yapabilmeniz için stratejinin etkinliğini ve verimliliğini doğrulamak için bölümleme düzenini test edin. Yanıt süresi, aktarım hızı ve ölçeklenebilirlik gibi ölçü faktörleri. Sonuçları performans hedefleriyle karşılaştırın ve performans sorunlarını veya sorunları belirleyin. Analize dayanarak olası iyileştirme fırsatlarını belirleyin. Verileri bölümler arasında yeniden dağıtmanız, bölüm boyutlarını ayarlamanız veya bölümleme ölçütlerini değiştirmeniz gerekebilir.
Dengeleme: Bölümleme, bir iş yükünün tasarımına ve geliştirilmesine karmaşıklık ekler. Bölümleme, geliştiricilerle veritabanı yöneticileri arasında konuşmalar ve planlama gerektirir.
Risk: Bölümleme, dikkate alınması ve çözülmesi gereken bazı olası sorunlar sunar, örneğin:
Veri dengesizliği: Bölümleme, bazı bölümlerin diğerlerine kıyasla orantısız miktarda veri veya iş yükü aldığı veri dengesizliğine yol açabilir. Veri dengesizliği, performans dengesizliklerine ve belirli bölümlerde artan çekişmeye neden olabilir.
Sorgu performansı: Kötü tasarlanmış bölümleme düzenleri sorgu performansını olumsuz etkileyebilir. Sorguların birden çok bölümdeki verilere erişmesi gerekiyorsa, bölümler arasında ek koordinasyon ve iletişim gerektirebilir ve bu da gecikme süresinin artmasına neden olabilir.
Azure kolaylaştırma
Ölçeklendirmeyi iyileştirme. Azure, dikey ve yatay ölçeklendirmeyi destekleyecek altyapı kapasitesine sahiptir. Azure hizmetlerinin SKU'lar olarak bilinen farklı performans katmanları vardır. SKU'lar dikey olarak ölçeklendirmenize olanak sağlar. Azure kaynaklarının çoğu otomatik ölçeklendirmeyi veya diğer yerinde ölçeklendirme seçeneklerini destekler. Bazı kaynaklar, ölçeklendirme davranışını ayarlamayı desteklemek için gelişmiş ölçümleri veya özel girişleri destekler. Azure'daki çoğu ölçeklendirme uygulaması sınırlar ayarlayabilir ve değişiklik için uyarılması gereken gözlemlenebilirliği destekleyebilir.
Azure İzleyici , uygulamalarınızdaki ve altyapınızdaki çeşitli ölçümleri ve koşulları izlemenize olanak tanır. önceden tanımlanmış kurallara göre otomatik ölçeklendirme eylemlerini tetikleme amacıyla İzleyici'yi kullanabilirsiniz. Örneğin, Azure Kubernetes Service'te (AKS), yatay pod otomatik ölçeklendirmeyi (HPA) ve küme otomatik ölçeklendirmesini etkinleştirmek için İzleyici'yi kullanabilirsiniz. İzleyici'nin izleme ve uyarı özelliklerini kullanarak Azure'da ölçeklendirmeyi etkili bir şekilde kolaylaştırabilir ve uygulamalarınızın ve altyapınızın talebi karşılayacak şekilde dinamik olarak ayarlanabilmesine yardımcı olabilirsiniz.
Azure'da özel otomatik ölçeklendirme de oluşturabilirsiniz. Otomatik ölçeklendirme özelliği olmayan kaynaklar için İzleyici'deki uyarıları kullanabilirsiniz. Bu uyarılar sorgu tabanlı veya ölçüm tabanlı olacak şekilde ayarlanabilir ve Azure Otomasyonu kullanarak eylemler gerçekleştirebilir. Otomasyon, Azure, bulut ve şirket içi ortamlarda PowerShell ve Python kodunu barındırmak ve çalıştırmak için bir platform sağlar. Runbook'ları isteğe bağlı veya zamanlamaya göre dağıtma, çalıştırma geçmişi ve günlük kaydı, tümleşik gizli dizi deposu ve kaynak denetimi tümleştirmesi gibi özellikler sunar.
Uygulamayı ölçeklendirilecek şekilde tasarlama: Azure'ın uygulama ölçeklendirme tasarımını kolaylaştırmanın bazı yolları şunlardır:
Veri kilitlemeyi ortadan kaldırma: Azure SQL Veritabanı'nda, katı tutarlılık gerektiren veritabanlarında performansı geliştirmek için iyileştirilmiş kilitlemeyi etkinleştirebilirsiniz.
Arka plan görevlerini kullanma: Azure, arka plan işlerini uygulamaya yönelik hizmetler ve yönergeler sunar. Daha fazla bilgi için bkz . Arka plan işleri.
Yük dengeleme uygulama: Azure, istemci benzini gerektirmeyen yük dengeleyiciler sağlar. Bu yük dengeleyiciler Azure Front Door, Azure Application Gateway ve Azure Load Balancer'ı içerir.
bir iş yükünü bölümleme: Azure, farklı veri depoları için çeşitli bölümleme stratejileri sunar. Bu stratejiler, verileri birden çok bölüme dağıtarak performansı ve ölçeklenebilirliği geliştirmeye yardımcı olur. Daha fazla bilgi için bkz . Veri bölümleme stratejileri.
İlgili bağlantılar
- Verileri neden bölümlemeli?
- Otomatik ölçeklendirme için en iyi yöntemler
- Azure'da otomatik ölçeklendirme özelliğine genel bakış
- Yatay, dikey ve işlevsel veri bölümleme
- Uygulama tasarımında dikkat edilmesi gerekenler
Performans Verimliliği denetim listesi
Öneriler kümesinin tamamına bakın.