İlişkisel olmayan veritabanınızdaki sanal çekirdek veya vCPU sayısını Azure Cosmos DB RU/sn'ye dönüştürme

UYGULANANLAR: NoSQL

ŞUNLAR IÇIN GEÇERLIDIR: MongoDB

Bu makalede, veri geçişini düşünürken Azure Cosmos DB istek birimlerini (RU/sn) nasıl tahmin ettiğiniz açıklanır, ancak tek bildiğiniz mevcut veritabanı çoğaltma kümelerinizdeki toplam sanal çekirdek veya vCPU sayısıdır. Bir veya daha fazla çoğaltma kümesini Azure Cosmos DB'ye geçirdiğinizde, bu çoğaltma kümelerinde tutulan her koleksiyon, 4x çoğaltma faktörüne sahip parçalı bir kümeden oluşan bir Azure Cosmos DB koleksiyonu olarak depolanır. Bu bölümleme ve ölçeklendirme kılavuzunda mimarimiz hakkında daha fazla bilgi edinebilirsiniz. İstek birimleri, bir koleksiyonda aktarım hızı kapasitesinin nasıl sağlandığıdır; daha fazla bilgi edinmek için istek birimleri kılavuzunu ve RU/sn sağlama kılavuzunu okuyabilirsiniz. Bir koleksiyonu geçirdiğinizde Azure Cosmos DB, sağlanan istek birimlerinize hizmet vermek ve verilerinizi depolamak için yeterli parça sağlar. Bu nedenle, geçiş öncesinde planlanan Azure Cosmos DB veri varlığınızın ölçeğini belirlemek için koleksiyonlar için RU/sn tahmini yapmak önemli bir adımdır. Binlerce müşteriyle olan deneyimimize dayanarak, bu formülün sanal çekirdeklerden veya vCPU'lardan kaba bir başlangıç noktası RU/sn tahmini elde etmemize yardımcı olduğunu bulduk:

Provisioned RU/s = C*T/R

  • T: Mevcut veritabanı veri taşıyan çoğaltma kümelerinizdeki toplam sanal çekirdek ve/veya vCPU sayısı.
  • R: Mevcut veri taşıyan çoğaltma kümelerinizin çoğaltma faktörü.
  • C: Sanal çekirdek veya vCPU başına önerilen sağlanan RU/sn. Bu değer Azure Cosmos DB mimarisinden türetilir:
    • NoSQL için Azure Cosmos DB için C = 600 RU/sn/sanal çekirdek*
    • C = MongoDB v4.0 için Azure Cosmos DB için 1000 RU/sn/sanal çekirdek*
    • Cassandra, Gremlin veya diğer API'ler için C API tahminleri şu anda kullanılamıyor

C değerleri yukarıda verilmiştir. T, mevcut veritabanınızın her veri taşıyan çoğaltma kümesindeki sanal çekirdek veya vCPU sayısı incelenerek ve toplamı elde etmek için toplanarak belirlenmelidir. T tahmini yapamıyorsanız bu kılavuz yerine Azure Cosmos DB kapasite planlayıcısı kullanarak RU/sn tahmini yapma kılavuzumuzu takip edebilirsiniz. T, mevcut veritabanınızın yönlendirme sunucusu veya yapılandırma kümesiyle ilişkilendirilmiş sanal çekirdekleri veya vCPU'ları (bu bileşenlere sahipse) içermemelidir.

R için veritabanı çoğaltma kümelerinizin ortalama çoğaltma faktörünü takmanızı öneririz; bu bilgiler kullanılamıyorsa, R=3 iyi bir temel kuraldır.

Azure Cosmos DB birlikte çalışma API'leri NoSQL API'sinin üzerinde çalışır ve kendi benzersiz mimarilerini uygular; Bu nedenle MongoDB v4.0 için Azure Cosmos DB, NoSQL için Azure Cosmos DB API'sinden farklı bir C değerine sahiptir.

Çalışmış örnek: tek çoğaltma kümesi geçişi için RU/sn tahmini

Migrate a replica set with 3 replicas of a four-core SKU to Azure Cosmos DB

Dört çekirdekli sunucu SKU'su temelinde R=3 çoğaltma faktörüne sahip tek bir çoğaltma kümesi düşünün. Ardından

  • T = 12 sanal çekirdek
  • R = 3

Ardından NoSQL için Azure Cosmos DB API'sine yönelik önerilen istek birimleri şunlardır:

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (12 vCores) / (3) = 2,400 RU/s

MongoDB için Azure Cosmos DB için önerilen istek birimleri şunlardır:

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (12 vCores) / (3) = 4,000 RU/s

Çalışmış örnek: Homojen çoğaltma kümelerinden oluşan bir küme geçirilirken RU/sn tahmini

Migrate a homogeneous sharded replica set with 3 shards, each with three replicas of a four-core SKU, to Azure Cosmos DB

Her biri bir çoğaltma faktörü üç olan ve her sunucunun dört çekirdekli bir SKU olduğu üç çoğaltma kümesi içeren parçalı ve çoğaltılmış kümeyi düşünün. Ardından

  • T = 36 sanal çekirdek
  • R = 3

Ardından NoSQL için Azure Cosmos DB API'sine yönelik önerilen istek birimleri şunlardır:

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (36 vCores) / (3) = 7,200 RU/s

MongoDB için Azure Cosmos DB için önerilen istek birimleri şunlardır:

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (36 vCores) / (3) = 12,000 RU/s

Çalışmış örnek: heterojen çoğaltma kümelerinden oluşan bir küme geçirilirken RU/sn tahmini

Migrate a heterogeneous sharded replica set with 3 shards, each with different numbers of replicas of a four-core SKU, to Azure Cosmos DB

Her sunucunun dört çekirdekli bir SKU'yu temel aldığı üç çoğaltma kümesi içeren parçalı ve çoğaltılmış kümeyi düşünün. Çoğaltma kümeleri, her birinin farklı bir çoğaltma faktörüne sahip olması için "heterojendir": sırasıyla 3x, 1x ve 5x. Önerilen yaklaşım, istek birimlerini hesaplarken ortalama çoğaltma faktörünü kullanmaktır. Ardından

  • T = 36 sanal çekirdek
  • Ravg = (3+1+5)/3 = 3

Ardından NoSQL için Azure Cosmos DB API'sine yönelik önerilen istek birimleri şunlardır:

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (36 vCores) / (3) = 7,200 RU/s

MongoDB için Azure Cosmos DB için önerilen istek birimleri şunlardır:

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (36 vCores) / (3) = 12,000 RU/s

En doğru RU/sn tahminini almak için İpuçları

Bulut tarafından yönetilen veritabanından geçiş: Şu anda bulut tarafından yönetilen bir veritabanı kullanıyorsanız, bu hizmetler genellikle sanal çekirdek veya vCPU birimlerinde (başka bir deyişle T) sağlanmış gibi görünür, ancak aslında sağladığınız çekirdek sayısı bir R düğümü çoğaltma kümesi için sanal çekirdekleri/çoğaltmayı veya vCPU/çoğaltma değerini (T/R) ayarlar; gerçek çekirdek sayısı, açıkça sağladığınızdan R kat daha fazladır. Bu açıklamanın geçerli bulut tarafından yönetilen veritabanınız için geçerli olup olmadığını belirlemenizi ve doğru bir T tahmini elde etmek için sağlanan sanal çekirdeklerin veya vCPU'ların nominal sayısını R ile çarpmanız gerekir.

sanal çekirdekler ve vCPU'lar: Bu makalede "sanal çekirdek" ve "vCPU" değerlerini eş anlamlı olarak ele alıyoruz, bu nedenle C'de ayrım yapılmadan RU/sn/sanal çekirdek veya RU/sn/vCPU birimleri vardır. Ancak pratikte bu basitleştirme bazı durumlarda doğru olmayabilir. Bu terimlerin farklı anlamları olabilir; örneğin, fiziksel CPU'larınız hiper iş parçacığı kullanımı destekliyorsa, 2 vCPU = 1 sanal çekirdek w/HT veya başka bir şey olabilir. Genel olarak sanal çekirdek/vCPU ilişkisi donanıma bağlıdır ve mevcut küme donanımınızdaki ilişkinin ne olduğunu ve küme işleminizin sanal çekirdekler veya vCPU'lar açısından sağlanıp sağlanmadığını araştırmanızı öneririz. VCPU ve sanal çekirdek donanımınızda farklı anlamlara sahipse, yukarıdaki C tahminlerini RU/sn/sanal çekirdek birimlerine sahip olarak değerlendirmenizi ve gerekirse donanımınıza uygun dönüştürme faktörünü kullanarak T'yi vCPU'dan sanal çekirdek'e dönüştürmenizi öneririz.

Özet

Sanal çekirdeklerden veya vCPU'lardan RU/sn tahmini için toplam sanal çekirdek vCPU'ları/ ve var olan veritabanı çoğaltma kümelerinizden çoğaltma faktörü hakkında bilgi toplamanız gerekir. Ardından sanal çekirdekler vCPU'ları/ ile aktarım hızı arasındaki bilinen ilişkileri kullanarak Azure Cosmos DB istek birimlerini (RU/sn) tahmin edebilirsiniz. Bu istek birimi tahminini bulmak, geçiş sonrasında Azure Cosmos DB veri varlığınızın ölçeğini tahmin etmek için önemli bir adım olacaktır.

Aşağıdaki tabloda NoSQL için Azure Cosmos DB API'si ve MongoDB v4.0 için API için sanal çekirdekler ile vCPU'lar arasındaki ilişki özetlenmiştir:

Sanal çekirdek RU/sn (NoSQL için API)
(rep. factor=3)
RU/sn (MongoDB v4.0 için API)
(rep. factor=3)
3 600 1000
6 1200 2000
12 2400 4000
24 4800 8000
48 9600 16000
96 19200 32000
192 38400 64000
384 76800 128000

Sonraki adımlar