Service Fabric'te ölçümleri ve yükü birleştirme
Service Fabric Kümesi Kaynak Yöneticisi'nin kümedeki yük ölçümlerini yönetmeye yönelik varsayılan stratejisi yükü dağıtmaktır. Düğümlerin eşit bir şekilde kullanılmasını sağlamak hem çekişmeye hem de kaynakların boşa harcanmasına neden olan sık ve soğuk noktaları önler. Kümedeki iş yüklerinin dağıtılması, hatanın belirli bir iş yükünün büyük bir yüzdesini almamasını sağladığından, sağ kalan hatalar açısından da en güvenlidir.
Service Fabric Kümesi Resource Manager, yükü yönetmeye yönelik farklı bir stratejiyi destekler ve bu da birleştirmedir. Birleştirme, bir ölçümün kullanımını kümeye dağıtmaya çalışmak yerine birleştirilmiş olduğu anlamına gelir. Birleştirme, varsayılan dengeleme stratejisinin yalnızca ters çevrilmesidir; ölçüm yükünün ortalama standart sapmasını en aza indirmek yerine Küme Resource Manager bunu artırmaya çalışır.
Birleştirme ne zaman kullanılır?
Yükün kümeye dağıtılması, her düğümdeki kaynakların bir kısmını tüketir. Bazı iş yükleri, son derece büyük hizmetler oluşturur ve bir düğümün çoğunu veya tümünü kullanır. Böyle durumlarda, oluşturulan büyük iş yükleri olduğunda bunları çalıştırmak için herhangi bir düğümde yeterli alan olmaması mümkündür. Service Fabric'te büyük iş yükleri sorun değildir; Bu durumlarda Küme Resource Manager, bu büyük iş yüküne yer açmak için kümeyi yeniden düzenlemesi gerektiğini belirler. Ancak bu arada bu iş yükünün kümede zamanlanmasını beklemesi gerekir.
Taşınacak çok sayıda hizmet ve durum varsa, büyük iş yükünün kümeye yerleştirilmesi uzun sürebilir. Kümedeki diğer iş yüklerinin de büyük olması ve bu nedenle yeniden düzenlemenin daha uzun sürmesi daha olasıdır. Service Fabric ekibi, bu senaryonun simülasyonlarındaki oluşturma sürelerini ölçtü. Küme kullanımı %30 ile %50 arasında bir oranda arttıkça büyük hizmetlerin oluşturulmasının çok daha uzun sürdüğünü tespit ettik. Bu senaryoyla başa çıkabilmek için birleştirmeyi bir dengeleme stratejisi olarak kullanıma aldık. Özellikle oluşturma süresinin önemli olduğu büyük iş yükleri için birleştirmenin bu yeni iş yüklerinin kümede zamanlanmasında gerçekten yardımcı olduğunu bulduk.
Küme Resource Manager'ın hizmetlerin yükünü daha az düğüme ayırmayı proaktif olarak denemesi için birleştirme ölçümlerini yapılandırabilirsiniz. Bu, kümeyi yeniden düzenlemeden büyük hizmetler için neredeyse her zaman yer olmasını sağlamaya yardımcı olur. Kümeyi yeniden düzenlemek zorunda kalmak, büyük iş yüklerinin hızla oluşturulmasına olanak tanır.
Çoğu insanın birleştirmeye ihtiyacı yoktur. Hizmetler genellikle küçüktür, bu nedenle kümede bunlara yer bulmak zor değildir. Yeniden düzenleme mümkün olduğunda, çoğu hizmet küçük olduğundan ve hızlı ve paralel olarak taşınabildiğinden, bu hızlı bir şekilde devam eder. Ancak, büyük hizmetleriniz varsa ve bunların hızlı bir şekilde oluşturulması gerekiyorsa birleştirme stratejisi tam size göredir. Bir sonraki adımda birleştirmeyi kullanmanın dezavantajlarını tartışacağız.
Birleştirme dengeleri
Başarısız olan düğümlerde daha fazla hizmet çalıştığından birleştirme hataların etkisini artırabilir. Kümedeki kaynakların büyük iş yüklerinin oluşturulması beklenerek yedekte tutulması gerektiğinden birleştirme maliyetleri de artırabilir.
Aşağıdaki diyagram, biri birleştirilmiş, diğeri birleştirilmemiş iki kümenin görsel bir gösterimini sağlar.
Dengeli durumda, en büyük hizmet nesnelerinden birini yerleştirmek için gerekli olacak hareket sayısını göz önünde bulundurun. Birleştirilmiş kümede, büyük iş yükü diğer hizmetlerin taşınmasını beklemek zorunda kalmadan dört veya beş düğüme yerleştirilebilir.
Birleştirme avantajları ve dezavantajları
Peki diğer kavramsal dengeler nelerdir? İşte düşünmen gereken şeylerin hızlı bir tablosu:
Birleştirme Avantajları | Birleştirme Eksileri |
---|---|
Büyük hizmetlerin daha hızlı oluşturulmasını sağlar | Yükü daha az düğüme yoğunlaştırarak çekişme artar |
Oluşturma sırasında daha düşük veri hareketini etkinleştirir | Hatalar daha fazla hizmeti etkileyebilir ve daha fazla değişim sıklığına neden olabilir |
Gereksinimlerin zengin açıklamasına ve alanın geri kazanılmasına izin verir | Daha karmaşık genel Kaynak Yönetimi yapılandırması |
Birleştirilmiş ve normal ölçümleri aynı kümede karıştırabilirsiniz. Küme Kaynak Yöneticisi, diğer ölçümleri dağıtırken birleştirme ölçümlerini mümkün olduğunca birleştirmeye çalışır. Birleştirme ve dengeleme stratejilerini karıştırmanın sonuçları aşağıdakiler gibi çeşitli faktörlere bağlıdır:
- dengeleme ölçümlerinin sayısı ile birleştirme ölçümlerinin sayısı karşılaştırması
- Herhangi bir hizmetin her iki ölçüm türünü de kullanıp kullanmadığı
- ölçüm ağırlıkları
- geçerli ölçüm yükleri
Deneme, tam olarak gerekli yapılandırmayı belirlemek için gereklidir. Üretimde birleştirme ölçümlerini etkinleştirmeden önce iş yüklerinizin kapsamlı bir şekilde ölçülmesi önerilir. Bu, özellikle birleştirme ve dengeli ölçümleri aynı hizmet içinde karıştırırken geçerlidir.
Birleştirme ölçümlerini yapılandırma
Birleştirme ölçümlerini yapılandırmak kümede genel bir karardır ve birleştirme için tek tek ölçümler seçilebilir. Aşağıdaki yapılandırma parçacıkları, ölçümleri birleştirme için yapılandırmayı gösterir. Bu durumda"Ölçüm1" birleştirme ölçümü olarak yapılandırılırken, "Ölçüm2" normal şekilde dengelenmeye devam eder.
ClusterManifest.xml:
<Section Name="DefragmentationMetrics">
<Parameter Name="Metric1" Value="true" />
<Parameter Name="Metric2" Value="false" />
</Section>
Tek başına dağıtımlar için ClusterConfig.json veya Azure tarafından barındırılan kümeler için Template.json aracılığıyla:
"fabricSettings": [
{
"name": "DefragmentationMetrics",
"parameters": [
{
"name": "Metric1",
"value": "true"
},
{
"name": "Metric2",
"value": "false"
}
]
}
]
Sonraki adımlar
- Küme Kaynak Yöneticisi'nin kümeyi açıklamaya yönelik birçok seçeneği vardır. Bunlar hakkında daha fazla bilgi edinmek için Service Fabric kümesini açıklama makalesine göz atın
- Ölçümler, Service Fabric Kümesi Kaynak Yöneticisi'nin kümedeki tüketimi ve kapasiteyi yönetme şeklidir. Ölçümler ve bunları yapılandırma hakkında daha fazla bilgi edinmek için bu makaleye göz atın