Azure Cosmos DB kapsayıcısı veya hesabı için normalleştirilmiş RU/sn'leri izleme

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin Tablo

Azure Cosmos DB için Azure İzleyici, hesabınızı izlemek ve panolar oluşturmak için bir ölçüm görünümü sağlar. Azure Cosmos DB ölçümleri varsayılan olarak toplanır, bu özellik herhangi bir şeyi açıkça etkinleştirmenizi veya yapılandırmanızı gerektirmez.

Ölçüm Tanımı

Normalleştirilmiş RU Tüketimi ölçümü, bir veritabanı veya kapsayıcıda sağlanan aktarım hızının kullanımını ölçmeye yardımcı olmak için kullanılan %0 ile %100 arasında bir ölçümdür. Ölçüm 1 dakikalık aralıklarla yayılır ve zaman aralığındaki tüm bölüm anahtarı aralıklarında maksimum RU/sn kullanımı olarak tanımlanır. Her bölüm anahtarı aralığı bir fiziksel bölüme eşlenir ve bir dizi olası karma değer için verileri tutmak üzere atanır. Genel olarak, Normalleştirilmiş RU yüzdesi ne kadar yüksek olursa, sağlanan aktarım hızınızı o kadar fazla kullanıyorsunuz demektir. Ölçüm, bir veritabanı veya kapsayıcıdaki tek tek bölüm anahtarı aralıklarının kullanımını görüntülemek için de kullanılabilir.

Örneğin, maksimum aktarım hızını 20.000 RU/sn (2000 - 20.000 RU/sn arasında ölçeklenir) ayarladığınız ve iki bölüm anahtarı aralığınız (fiziksel bölümler) P1 ve P2 olan bir kapsayıcınız olduğunu varsayalım. Azure Cosmos DB sağlanan aktarım hızını tüm bölüm anahtarı aralıklarına eşit olarak dağıttığı için P1 ve P2'nin her biri 1000 - 10.000 RU/sn arasında ölçeklendirilebilir. 1 dakikalık bir aralıkta, belirli bir saniyede P1'in 6000 istek birimi, P2'nin ise 8000 istek birimi tüketmiş olduğunu varsayalım. P1'in normalleştirilmiş RU tüketimi P2 için %60 ve %80'dir. Kapsayıcının tamamının genel normalleştirilmiş RU tüketimi MAX(%60, %80 = %80) şeklindedir.

İstek birimi tüketimini saniye başına bir aralıkta ve işlem türüyle birlikte görmek istiyorsanız, kabul etme özelliği Tanılama Günlüklerini kullanabilir ve PartitionKeyRUConsumption tablosunu sorgulayabilirsiniz. Uygulamanızın Azure Cosmos DB kaynağında gerçekleştirdiği işlemlere ve durum koduna üst düzey bir genel bakış elde etmek için yerleşik Azure İzleyici Toplam İstekleri (NoSQL için API), Mongo İstekleri, Gremlin İstekleri veya Cassandra İstekleri ölçümünü kullanabilirsiniz. Daha sonra bu istekleri 429 durum koduna göre filtreleyebilir ve İşlem Türüne göre bölebilirsiniz.

Normalleştirilmiş RU/sn daha yüksek olduğunda neler beklenip yapılması gerekir?

Normalleştirilmiş RU tüketimi belirli bir bölüm anahtarı aralığı için %100'e ulaştığında ve bir istemci o belirli bölüm anahtarı aralığına 1 saniyelik bir zaman penceresinde hala istekte bulunursa, hız sınırlama hatası (429) alır.

Bu, kaynağınızla ilgili bir sorun olduğu anlamına gelmez. Varsayılan olarak, Azure Cosmos DB istemci SDK'ları ve Azure Data Factory ve toplu yürütücü kitaplığı gibi veri içeri aktarma araçları istekleri 429'larda otomatik olarak yeniden dener. Genellikle en fazla 9 kez yeniden dener. Sonuç olarak, ölçümlerde 429'ları görebilirsiniz ancak bu hatalar uygulamanıza döndürülmemiş bile olabilir.

Genel olarak, üretim iş yükünde isteklerin %1-5 oranında 429 hataları içerdiğini görüyorsanız ve uçtan uca gecikme süreniz kabul edilebilir düzeydeyse, bu RU/sn'nin tam olarak kullanıldığını gösteren sağlıklı bir işarettir. Bu durumda, %100'e ulaşan normalleştirilmiş RU tüketim ölçümü, belirli bir saniyede en az bir bölüm anahtarı aralığının sağlanan tüm aktarım hızını kullandığı anlamına gelir. 429 hatalarının genel oranı hala düşük olduğundan bu kabul edilebilir bir durumdur. Başka bir eylem gerekli değildir.

Veritabanınıza veya kapsayıcınıza yönelik isteklerinizin yüzde kaçının 429 ile sonuçlandığına karar vermek için Azure Cosmos DB hesap dikey pencerenizden durum koduna göre toplam istekler>Analizler> bölümüne gidin. Belirli bir veritabanı ve kapsayıcıya göre filtreleyin. Gremlin API'sinde Gremlin İstekleri ölçümünü kullanın. Total Requests by Status Code chart that shows number of 429 and 2xx requests.

Normalleştirilmiş RU tüketim ölçümü birden çok bölüm anahtarı aralığında tutarlı olarak %100 ise ve 429s oranı %5'in üzerindeyse, aktarım hızının artırılması önerilir. Azure izleyici ölçümlerini ve Azure izleyici tanılama günlüklerini kullanarak hangi işlemlerin yoğun olduğunu ve en yüksek kullanımlarının ne olduğunu öğrenebilirsiniz. Sağlanan aktarım hızını (RU/sn) ölçeklendirmeye yönelik en iyi yöntemleri uygulayın

Normalleştirilmiş RU'nun %100'e ulaştığı için 429 hız sınırlama hatasıyla karşılaşırsınız. Bunun nedeni, normalleştirilmiş RU'nun tüm bölüm anahtarı aralıkları üzerindeki maksimum kullanımı temsil eden tek bir değer olmasıdır. Bir bölüm anahtarı aralığı meşgul olabilir, ancak diğer bölüm anahtarı aralıkları isteklere sorunsuz bir şekilde hizmet verebilir. Örneğin, bir bölüm anahtarı aralığındaki tüm RU/sn'leri kullanan saklı yordam gibi tek bir işlem, normalleştirilmiş RU tüketimi ölçümünde kısa bir ani artışa neden olur. Bu gibi durumlarda, genel istek oranı düşükse veya farklı bölüm anahtarı aralıklarındaki diğer bölümlere istekler yapıldığında hemen hız sınırlama hataları olmaz.

429 hız sınırlama hatalarını yorumlama ve hatalarını ayıklama hakkında daha fazla bilgi edinin.

Sık erişimli bölümleri izleme

Normalleştirilmiş RU tüketimi ölçümü, iş yükünüzün sık erişimli bir bölüme sahip olup olmadığını izlemek için kullanılabilir. Sık erişimli bölüm, bir veya birkaç mantıksal bölüm anahtarı daha yüksek istek hacmi nedeniyle toplam RU/sn'nin orantısız bir miktarını tükettiğinde ortaya çıkar. Bunun nedeni istekleri eşit olarak dağıtmayan bir bölüm anahtarı tasarımı olabilir. "Sık erişimli" duruma gelen mantıksal bölümlerin küçük bir alt kümesine (bölüm anahtarı aralıkları anlamına gelir) birçok isteğin yönlendirilmesiyle sonuçlanır. Mantıksal bölümün tüm verileri bir bölüm anahtarı aralığında bulunduğundan ve toplam RU/sn tüm bölüm anahtarı aralıkları arasında eşit olarak dağıtıldığı için, sık erişimli bölüm 429'lara ve aktarım hızının verimsiz kullanımına neden olabilir.

Sık erişimli bölüm olup olmadığını belirleme

Sık erişimli bölüm olup olmadığını doğrulamak için Analizler> Throughput>Normalleştirilmiş RU Tüketimi (%) By PartitionKeyRangeID konumuna gidin. Belirli bir veritabanı ve kapsayıcıya göre filtreleyin.

Her PartitionKeyRangeId, bir fiziksel bölüme eşler. Diğerlerinden önemli ölçüde daha yüksek normalleştirilmiş RU tüketimine sahip bir PartitionKeyRangeId varsa (örneğin, biri tutarlı olarak %100'de, diğerleri %30 veya daha azsa), bu bir sık erişimli bölümün işareti olabilir.

Normalized RU Consumption by PartitionKeyRangeId chart with a hot partition.

En çok RU/sn kullanan mantıksal bölümleri ve önerilen çözümleri belirlemek için Azure Cosmos DB istek hızı çok büyük (429) özel durumlarını tanılama ve sorunlarını giderme makalesine bakın.

Normalleştirilmiş RU Tüketimi ve otomatik ölçeklendirme

En az 1 bölüm anahtarı aralığı zaman aralığında belirli bir saniye içinde ayrılmış tüm RU/sn değerini kullanırsa normalleştirilmiş RU tüketimi ölçümü %100 olarak gösterilir. Sık sorulan sorulardan biri, ru tüketiminin neden %100'de normalleştirildiği, ancak Azure Cosmos DB'nin ru/sn'leri otomatik ölçeklendirme ile maksimum aktarım hızına ölçeklendirmediğidir.

Dekont

Aşağıdaki bilgiler otomatik ölçeklendirmenin geçerli uygulamasını açıklar ve gelecekte değiştirilebilir.

Otomatik ölçeklendirmeyi kullandığınızda Azure Cosmos DB, 5 saniyelik bir aralıkta sürekli ve sürekli bir süre için normalleştirilmiş RU tüketimi %100 olduğunda RU/sn'yi yalnızca maksimum aktarım hızına ölçeklendirir. Bu, tek ve anlık ani artışların gereksiz ölçeklendirmeye ve daha yüksek maliyete yol açmamasını sağladığından ölçeklendirme mantığının kullanıcıya uygun maliyetli olmasını sağlamak için yapılır. Anlık ani artışlar olduğunda, sistem genellikle daha önce RU/sn olarak ölçeklendirilen değerden daha yüksek ancak en yüksek RU/sn'den daha düşük bir değere ölçeklendirilir.

Örneğin, en yüksek aktarım hızını 20.000 RU/sn (2000 - 20.000 RU/sn arasında ölçeklendirir) ve 2 bölüm anahtarı aralığına sahip bir kapsayıcınız olduğunu varsayalım. Her bölüm anahtarı aralığı 1000 - 10.000 RU/sn arasında ölçeklendirilebilir. Otomatik ölçeklendirme tüm gerekli kaynakları önceden sağladığından, istediğiniz zaman en fazla 20.000 RU/sn kullanabilirsiniz. Aralıklı bir trafik artışına sahip olduğunuzu ve burada tek bir saniye için bölüm anahtarı aralıklarından birinin kullanımının 10.000 RU/sn olduğunu varsayalım. Sonraki saniyeler için kullanım 1000 RU/sn'ye geri döner. Normalleştirilmiş RU tüketimi ölçümü tüm bölümlerdeki zaman aralığındaki en yüksek kullanımı gösterdiğinden %100'ünü gösterir. Ancak kullanım 1 saniye boyunca yalnızca %100 olduğundan otomatik ölçeklendirme otomatik olarak maksimuma ölçeklendirilmeyecektir.

Sonuç olarak, otomatik ölçeklendirme en yüksek değere ölçeklendirilmese de kullanılabilir toplam RU/sn'yi kullanmaya devam edebilirsiniz. RU/sn tüketiminizi doğrulamak için, tüm bölüm anahtarı aralıklarında saniye düzeyinde genel RU/sn tüketimini sorgulamak için kabul etme özelliği Tanılama Günlüklerini kullanabilirsiniz.

CDBPartitionKeyRUConsumption
| where TimeGenerated >= (todatetime('2022-01-28T20:35:00Z')) and TimeGenerated <= todatetime('2022-01-28T20:40:00Z')
| where DatabaseName == "MyDatabase" and CollectionName == "MyContainer"
| summarize sum(RequestCharge) by bin(TimeGenerated, 1sec), PartitionKeyRangeId
| render timechart

Genel olarak, otomatik ölçeklendirme kullanan bir üretim iş yükü için isteklerin %1-5'ini 429s ile görüyorsanız ve uçtan uca gecikmeniz kabul edilebilirse, bu RU/sn'lerin tam olarak kullanıldığına ilişkin iyi durumda bir işarettir. Normalleştirilmiş RU tüketimi bazen %100'e ulaşsa ve otomatik ölçeklendirme maksimum RU/sn'ye kadar ölçeklendirilmese bile, 429'ların genel oranı düşük olduğundan bu sorun olmaz. Eylem gerekmiyor.

Bahşiş

Otomatik ölçeklendirme kullanıyorsanız ve normalleştirilmiş RU tüketiminin tutarlı olarak %100 olduğunu ve sürekli olarak maksimum RU/sn'ye ölçeklendirildiğini fark ederseniz, bu el ile aktarım hızını kullanmanın daha uygun maliyetli olabileceğinin bir işaretidir. otomatik ölçeklendirme veya el ile aktarım hızının iş yükünüz için en uygun olup olmadığını belirlemek için standart (el ile) ve otomatik ölçeklendirme sağlanan aktarım hızı arasında seçim yapma konusuna bakın. Azure Cosmos DB, el ile veya otomatik ölçeklendirme aktarım hızı önermek için iş yükü desenlerinize göre Azure Danışmanı önerileri de gönderir.

Normalleştirilmiş istek birimi tüketim ölçümünü görüntüleme

  1. Azure Portal oturum açın.

  2. Sol gezinti çubuğundan İzleyici'yi ve ardından Ölçümler'i seçin.

    Metrics pane in Azure Monitor

  3. Ölçümler bölmesinden >Kaynak> seçin gerekli aboneliği ve kaynak grubunu seçin. Kaynak türü için Azure Cosmos DB hesapları'nı seçin, mevcut Azure Cosmos DB hesaplarınızdan birini seçin ve Uygula'yı seçin.

    Select the account scope to view metrics

  4. Ardından kullanılabilir ölçümler listesinden bir ölçüm seçebilirsiniz. İstek birimlerine, depolama alanına, gecikme süresine, kullanılabilirliğe, Cassandra'ya ve diğerlerine özgü ölçümleri seçebilirsiniz. Bu listedeki kullanılabilir tüm ölçümler hakkında ayrıntılı bilgi edinmek için Kategoriye göre ölçümler makalesine bakın. Bu örnekte, toplama değeri olarak Normalleştirilmiş RU Tüketimi ölçümü ve En Fazla seçeneğini belirleyelim.

    Bu ayrıntılara ek olarak, ölçümlerin Zaman aralığını ve Zaman ayrıntı düzeyini de seçebilirsiniz. En fazla, son 30 güne ilişkin ölçümleri görüntüleyebilirsiniz. Filtreyi uyguladıktan sonra, filtrenize göre bir grafik görüntülenir.

    Choose a metric from the Azure portal

Normalleştirilmiş RU tüketim ölçümü için filtreler

Ayrıca ölçümleri ve belirli bir CollectionName, DatabaseName, PartitionKeyRangeID ve Region tarafından görüntülenen grafiği filtreleyebilirsiniz. Ölçümleri filtrelemek için Filtre ekle'yi seçin ve CollectionName gibi gerekli özelliği ve ilgilendiğiniz ilgili değeri seçin. Graf daha sonra seçilen dönem için kapsayıcı için normalleştirilmiş RU tüketim ölçümünü görüntüler.

Bölmeyi uygula seçeneğini kullanarak ölçümleri gruplandırabilirsiniz. Paylaşılan aktarım hızı veritabanları için normalleştirilmiş RU ölçümü verileri yalnızca veritabanı ayrıntı düzeyinde gösterir; koleksiyon başına veri göstermez. Bu nedenle, paylaşılan aktarım hızı veritabanı için koleksiyon adına göre bölme uyguladığınızda hiçbir veri görmezsiniz.

Her kapsayıcı için normalleştirilmiş istek birimi tüketim ölçümü aşağıdaki görüntüde gösterildiği gibi görüntülenir:

Apply filters to normalized request unit consumption metric

Sonraki adımlar