Service Fabric'te ölçümlerin ve yükün birleştirilmiş hale getirilmesi

Service Fabric Kümesi Resource Manager 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 boşa harcanan kaynaklara yol açan 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, hayatta kalan hatalar açısından da en güvenlidir.

Service Fabric Kümesi Resource Manager, yükü yönetmek için birleştirme olan farklı bir stratejiyi destekler. Birleştirme, bir ölçümün kullanımını kümeye dağıtmaya çalışmak yerine birleştirildiğini gösterir. 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, olağanüstü derecede büyük olan ve bir düğümün çoğunu veya tümünü tüketen hizmetler oluşturur. 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; Böyle 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 dolayısıyla yeniden düzenlemenin daha uzun sürmesi daha olasıdır. Service Fabric ekibi bu senaryonun simülasyonlarında 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 bir dengeleme stratejisi olarak birleştirmeyi 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.

Birleştirme ölçümlerini, hizmetlerin yükünü proaktif olarak daha az düğüme bölmeye çalışmak için Küme Resource Manager olacak şekilde 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üçük olduğundan 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şınabileceğ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 sizin için geçerlidir. Bir sonraki adımda birleştirmeyi kullanmanın dezavantajlarını ele alacağı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 diyagramda biri birleştirilmiş, diğeri birleştirilmemiş iki kümenin görsel bir gösterimi sağlanır.

Dengeli ve Birleştirilmiş Kümeleri Karşılaştırma

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 dezavantajlar nelerdir? İşte düşünmen gereken şeylerin hızlı bir tablosu:

Birleştirme Avantajları Birleştirme Dezavantajları
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 birlikte kullanabilirsiniz. Küme Resource Manager birleştirme ölçümlerini mümkün olduğunca birleştirirken diğerlerini de yaymaya ç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

Tam olarak gerekli yapılandırmayı belirlemek için deneme gereklidir. Üretimde birleştirme ölçümlerini etkinleştirmeden önce iş yüklerinizin kapsamlı bir şekilde ölçülmesini öneririz. Bu durum özellikle aynı hizmet içindeki birleştirme ve dengeli ölçümleri karıştırırken geçerlidir.

Birleştirme ölçümlerini yapılandırma

Birleştirme ölçümlerini yapılandırma kümede genel bir karardır ve birleştirme için tek tek ölçümler seçilebilir. Aşağıdaki yapılandırma kod 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 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 Resource Manager kümeyi açıklamaya yönelik birçok seçenek 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üme 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