Bagikan melalui


Mengonversi jumlah vCore atau vCPU dalam database non relasional Anda ke Azure Cosmos DB RU/s

BERLAKU UNTUK: NoSQL

BERLAKU UNTUK: MongoDB

Artikel ini menjelaskan cara memperkirakan unit permintaan Azure Cosmos DB (RU/s) ketika Anda mempertimbangkan migrasi data tetapi yang Anda tahu hanyalah jumlah total vCore atau vCPU di kumpulan replika database yang sudah ada. Ketika Anda memigrasikan satu atau beberapa set replika ke Azure Cosmos DB, setiap kumpulan yang disimpan dalam set replika tersebut akan disimpan sebagai kumpulan Azure Cosmos DB yang terdiri dari kluster pecahan dengan faktor replikasi 4x. Anda dapat membaca lebih lanjut arsitektur kami dalam panduan pemartisian dan penskalaan. Unit permintaan adalah cara kapasitas throughput disediakan pada suatu kumpulan; Anda dapat membaca panduan unit permintaan dan panduan provisi RU/s untuk mempelajari lebih lanjut. Saat Anda memigrasikan koleksi, Azure Cosmos DB memprovisikan jumlah pecahan yang cukup untuk melayani unit permintaan yang Anda sediakan dan menyimpan data Anda. Oleh karena itu, memperkirakan RU/s untuk kumpulan merupakan langkah penting dalam menentukan skala perkiraan Azure Cosmos DB data sebelum migrasi. Berdasarkan pengalaman kami dengan ribuan pelanggan, kami telah menemukan bahwa formula ini membantu kami sampai pada perkiraan RU/s titik awal yang kasar dari vCore atau vCPU:

Provisioned RU/s = C*T/R

  • T: Total vCore dan/atau vCPU dalam set replika data-bearing database yang sudah ada.
  • R: Faktor replikasi dari set replika data-bearing yang sudah ada.
  • C: Penyediaan RU/s yang disarankan untuk setiap vCore atau vCPU. Nilai ini berasal dari arsitektur Azure Cosmos DB:
    • C = 600 RU/s/vCore* untuk Azure Cosmos DB untuk NoSQL
    • C = 1000 RU/s/vCore* untuk Azure Cosmos DB untuk MongoDB v4.0
    • Perkiraan C untuk API untuk Cassandra, Gremlin, atau API lainnya saat ini tidak tersedia

Nilai untuk C disediakan di atas. T harus ditentukan dengan memeriksa jumlah vCore atau vCPU di setiap set replika data-bearing dari database Anda yang ada, dan menjumlahkannya untuk mendapatkan total; jika Anda tidak dapat memperkirakan T, maka pertimbangkan untuk mengikuti panduan untuk memperkirakan RU/s dengan menggunakan perencana kapasitas Azure Cosmos DB daripada mengikuti panduan ini. T tidak boleh menyertakan vCore atau vCPU yang terkait dengan server perutean database atau kluster konfigurasi database yang sudah ada, jika memiliki komponen tersebut.

UntukR, sebaiknya masukkan faktor replikasi rata-rata set replika database Anda; jika informasi ini tidak tersedia, maka R=3 adalah aturan praktis yang baik.

API interop Azure Cosmos DB berjalan di atas API untuk NoSQL dan menerapkan arsitektur unik mereka sendiri; dengan demikian Azure Cosmos DB untuk MongoDB v4.0 memiliki nilai C yang berbeda dari Azure Cosmos DB API untuk NoSQL.

Contoh yang berhasil: memperkirakan RU/s untuk migrasi set replika tunggal

Memigrasikan set replika dengan 3 replika SKU empat inti ke Azure Cosmos DB

Pertimbangkan satu set replika dengan faktor replikasi R=3 berdasarkan SKU server yang memiliki empat core. Kemudian

  • T = 12 vCore
  • R = 3

Kemudian unit permintaan yang direkomendasikan untuk Azure Cosmos DB API untuk NoSQL adalah

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

Dan unit permintaan yang direkomendasikan untuk Azure Cosmos DB untuk MongoDB adalah

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

Contoh yang berhasil: memperkirakan RU/s saat memigrasikan kluster set replika yang homogen

Memigrasikan set replika pecahan homogen dengan 3 pecahan, masing-masing dengan tiga replika SKU empat inti, ke Azure Cosmos DB

Pertimbangkan kluster yang dipecah dan direplikasi yang terdiri dari tiga set replika, masing-masing dengan faktor replikasi tiga, di mana setiap servernya adalah SKU dengan empat core. Kemudian

  • T = 36 vCore
  • R = 3

Kemudian unit permintaan yang direkomendasikan untuk Azure Cosmos DB API untuk NoSQL adalah

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

Dan unit permintaan yang direkomendasikan untuk Azure Cosmos DB untuk MongoDB adalah

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

Contoh yang berhasil: memperkirakan RU/s saat memigrasikan kluster set replika yang heterogen atau berbeda

Memigrasikan set replika pecahan heterogen dengan 3 pecahan, masing-masing dengan jumlah replika SKU empat inti yang berbeda, ke Azure Cosmos DB

Pertimbangkan kluster yang dipecah dan direplikasi yang terdiri dari tiga set replika, yang mana setiap server didasarkan pada SKU dengan empat core. Set replika bersifat "heterogen" dalam artian bahwa masing-masing set replika tersebut memiliki faktor replikasi yang berbeda yang masing-masing yaitu 3x, 1x, dan 5x. Pendekatan yang disarankan adalah dengan menggunakan faktor replikasi rata-rata saat menghitung unit permintaan. Kemudian

  • T = 36 vCore
  • Ravg = (3+1+5)/3 = 3

Kemudian unit permintaan yang direkomendasikan untuk Azure Cosmos DB API untuk NoSQL adalah

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

Dan unit permintaan yang direkomendasikan untuk Azure Cosmos DB untuk MongoDB adalah

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

Tips untuk mendapatkan perkiraan RU/s yang paling akurat

Migrasi dari database yang dikelola cloud: Jika saat ini Anda menggunakan database yang dikelola cloud, layanan ini seringkali muncul untuk disediakan dalam unit vCore atau vCPU (dengan kata lain, T), tetapi, sebenarnya hitungan inti yang Anda provisikan menetapkan nilai vCore/replika atau vCPU/replika (T/R) untuk set replika simpul R; jumlah core sebenarnya adalah R kali lebih banyak daripada yang telah Anda sediakan secara eksplisit. Sebaiknya tentukan apakah deskripsi ini berlaku untuk database yang dikelola cloud Anda saat ini, dan, jika iya, Anda harus mengalikan jumlah nominal vCore atau vCPU yang disediakan dengan R untuk mendapatkan perkiraan T yang akurat.

vCore vs vCPU: Dalam artikel ini kita memperlakukan "vCore" dan "vCPU" dengan setara, sehingga C memiliki unit RU/s/vCore atau RU/s/vCPU, tanpa perbedaan. Namun dalam praktiknya, penyederhanaan ini mungkin tidak akurat dalam beberapa situasi. Istilah-istilah ini mungkin memiliki arti yang berbeda; misalnya, jika CPU fisik Anda mendukung hyperthreading, ada kemungkinan bahwa 2 vCPU = 1 vCore w/HT atau yang lain. Secara umum, hubungan vCore/vCPU bergantung pada perangkat keras, sehingga kami sarankan untuk menyelidiki hubungan pada perangkat keras kluster yang sudah ada, dan apakah komputasi kluster Anda disediakan dalam hal vCore atau vCPU. Jika vCPU dan vCore memiliki arti yang berbeda pada perangkat keras Anda, maka kami sarankan untuk memperlakukan perkiraan C di atas untuk memiliki unit RU/s/vCore, dan jika diperlukan, mengonversi T dari vCPU ke vCore dengan menggunakan faktor konversi yang sesuai dengan perangkat keras Anda.

Ringkasan

Memperkirakan RU/s dari vCore atau vCPU memerlukan pengumpulan informasi jumlah total vCore/vCPU dan faktor replikasi dari set replika database Anda yang sudah ada. Kemudian Anda dapat menggunakan hubungan yang diketahui antara vcore/vCPU dan throughput untuk memperkirakan unit permintaan Azure Cosmos DB (RU/s). Menemukan perkiraan unit permintaan ini akan menjadi langkah penting dalam mengantisipasi skala data estate Azure Cosmos DB Anda setelah migrasi.

Tabel di bawah ini meringkas hubungan antara vCore dan vCPU untuk AZURE Cosmos DB API untuk NoSQL dan API untuk MongoDB v4.0:

vCore RU/s (API untuk NoSQL)
(rep. faktor=3)
RU/s (API untuk MongoDB v4.0)
(rep. faktor=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

Langkah berikutnya