Testování výkonu a škálování pomocí Azure Cosmos DBPerformance and scale testing with Azure Cosmos DB

Testování výkonu a škálování je klíčový krok při vývoji aplikací.Performance and scale testing is a key step in application development. U mnoha aplikací má databázová vrstva významný dopad na celkový výkon a škálovatelnost.For many applications, the database tier has a significant impact on overall performance and scalability. Proto je to kritická součást testování výkonu.Therefore, it's a critical component of performance testing. Azure Cosmos DB je účelově sestavený pro elastické škálování a předvídatelný výkon.Azure Cosmos DB is purpose-built for elastic scale and predictable performance. Tyto funkce se skvěle hodí pro aplikace, které potřebují vysoce výkonnou databázovou vrstvu.These capabilities make it a great fit for applications that need a high-performance database tier.

Tento článek je referenční informace pro vývojáře implementující sady testů výkonnosti pro své Azure Cosmos DB úlohy.This article is a reference for developers implementing performance test suites for their Azure Cosmos DB workloads. Dá se taky použít k vyhodnocení Azure Cosmos DB pro vysoce výkonné aplikace.It also can be used to evaluate Azure Cosmos DB for high-performance application scenarios. Zaměřuje se hlavně na izolované testování výkonu databáze, ale zahrnuje i osvědčené postupy pro produkční aplikace.It focuses primarily on isolated performance testing of the database, but also includes best practices for production applications.

Po přečtení tohoto článku budete moci zodpovědět následující otázky:After reading this article, you'll be able to answer the following questions:

  • Kde najdu ukázkovou klientskou aplikaci rozhraní .NET pro testování výkonu Azure Cosmos DB?Where can I find a sample .NET client application for performance testing of Azure Cosmos DB?
  • Návody dosáhnout vysoké propustnosti pomocí Azure Cosmos DB z mé klientské aplikace?How do I achieve high throughput levels with Azure Cosmos DB from my client application?

Chcete-li začít s kódem, Stáhněte projekt z Azure Cosmos DB ukázka testování výkonu.To get started with code, download the project from Azure Cosmos DB performance testing sample.

Poznámka

Cílem této aplikace je Ukázat, jak dosáhnout nejlepšího výkonu z Azure Cosmos DB s malým počtem klientských počítačů.The goal of this application is to demonstrate how to get the best performance from Azure Cosmos DB with a small number of client machines. Cílem této ukázky je nedosáhnout kapacity propustnosti Azure Cosmos DB (což se může škálovat bez omezení).The goal of the sample is not to achieve the peak throughput capacity of Azure Cosmos DB (which can scale without any limits).

Pokud hledáte možnosti konfigurace na straně klienta pro zlepšení výkonu Azure Cosmos DB, přečtěte si téma tipy pro Azure Cosmos DB výkon.If you're looking for client-side configuration options to improve Azure Cosmos DB performance, see Azure Cosmos DB performance tips.

Spuštění aplikace testování výkonuRun the performance testing application

Nejrychlejší způsob, jak začít, je zkompilovat a spustit ukázku .NET, jak je popsáno v následujícím postupu.The quickest way to get started is to compile and run the .NET sample, as described in the following steps. Můžete si také projít zdrojový kód a implementovat podobné konfigurace na vlastní klientské aplikace.You can also review the source code and implement similar configurations on your own client applications.

Krok 1: Stáhněte si projekt z ukázky Azure Cosmos DB testování výkonunebo rozvětvete úložiště GitHub.Step 1: Download the project from Azure Cosmos DB performance testing sample, or fork the GitHub repository.

Krok 2: Upravte nastavení pro EndpointUrl, Authorizationkey tak, CollectionThroughput a DocumentTemplate (volitelné) v App.config.Step 2: Modify the settings for EndpointUrl, AuthorizationKey, CollectionThroughput, and DocumentTemplate (optional) in App.config.

Poznámka

Než zřídíte kolekce s vysokou propustností, získáte informace na stránce s cenami za účelem odhadu nákladů na kolekci.Before you provision collections with high throughput, refer to the Pricing page to estimate the costs per collection. VyAzure Cosmos DB služby Storage a propustnost nezávisle na hodinovém základě.Azure Cosmos DB bills storage and throughput independently on an hourly basis. Po otestování můžete ušetřit náklady odstraněním nebo snížením propustnosti kontejnerů Azure Cosmos.You can save costs by deleting or lowering the throughput of your Azure Cosmos containers after testing.

Krok 3: Zkompilujte a spusťte konzolovou aplikaci z příkazového řádku.Step 3: Compile and run the console app from the command line. Měl by se zobrazit výstup podobný následujícímu:You should see output like the following:

C:\Users\cosmosdb\Desktop\Benchmark>DocumentDBBenchmark.exe
Summary:
---------------------------------------------------------------------
Endpoint: https://arramacquerymetrics.documents.azure.com:443/
Collection : db.data at 100000 request units per second
Document Template*: Player.json
Degree of parallelism*: -1
---------------------------------------------------------------------
DocumentDBBenchmark starting...
Found collection data with 100000 RU/s
Starting Inserts with 100 tasks
Inserted 4503 docs @ 4491 writes/s, 47070 RU/s (122B max monthly 1KB reads)
Inserted 17910 docs @ 8862 writes/s, 92878 RU/s (241B max monthly 1KB reads)
Inserted 32339 docs @ 10531 writes/s, 110366 RU/s (286B max monthly 1KB reads)
Inserted 47848 docs @ 11675 writes/s, 122357 RU/s (317B max monthly 1KB reads)
Inserted 58857 docs @ 11545 writes/s, 120992 RU/s (314B max monthly 1KB reads)
Inserted 69547 docs @ 11378 writes/s, 119237 RU/s (309B max monthly 1KB reads)
Inserted 80687 docs @ 11345 writes/s, 118896 RU/s (308B max monthly 1KB reads)
Inserted 91455 docs @ 11272 writes/s, 118131 RU/s (306B max monthly 1KB reads)
Inserted 102129 docs @ 11208 writes/s, 117461 RU/s (304B max monthly 1KB reads)
Inserted 112444 docs @ 11120 writes/s, 116538 RU/s (302B max monthly 1KB reads)
Inserted 122927 docs @ 11063 writes/s, 115936 RU/s (301B max monthly 1KB reads)
Inserted 133157 docs @ 10993 writes/s, 115208 RU/s (299B max monthly 1KB reads)
Inserted 144078 docs @ 10988 writes/s, 115159 RU/s (298B max monthly 1KB reads)
Inserted 155415 docs @ 11013 writes/s, 115415 RU/s (299B max monthly 1KB reads)
Inserted 166126 docs @ 10992 writes/s, 115198 RU/s (299B max monthly 1KB reads)
Inserted 173051 docs @ 10739 writes/s, 112544 RU/s (292B max monthly 1KB reads)
Inserted 180169 docs @ 10527 writes/s, 110324 RU/s (286B max monthly 1KB reads)
Inserted 192469 docs @ 10616 writes/s, 111256 RU/s (288B max monthly 1KB reads)
Inserted 199107 docs @ 10406 writes/s, 109054 RU/s (283B max monthly 1KB reads)
Inserted 200000 docs @ 9930 writes/s, 104065 RU/s (270B max monthly 1KB reads)

Summary:
---------------------------------------------------------------------
Inserted 200000 docs @ 9928 writes/s, 104063 RU/s (270B max monthly 1KB reads)
---------------------------------------------------------------------
DocumentDBBenchmark completed successfully.
Press any key to exit...

Krok 4 (v případě potřeby): Propustnost uvedená v tomto nástroji (RU/s) musí být stejná nebo vyšší než zajištěná propustnost kolekce nebo sada kolekcí.Step 4 (if necessary): The throughput reported (RU/s) from the tool should be the same or higher than the provisioned throughput of the collection or a set of collections. Pokud to tak není, můžete zvýšit DegreeOfParallelism v malých přírůstcíchch, které vám pomůžou dosáhnout tohoto limitu.If it's not, increasing the DegreeOfParallelism in small increments might help you reach the limit. Pokud propustnost z klientské aplikace plateaus, spusťte více instancí aplikace na dalších klientských počítačích.If the throughput from your client app plateaus, start multiple instances of the app on additional client machines. Pokud potřebujete pomoc s tímto krokem, Projděte si lístek podpory z Azure Portal.If you need help with this step file a support ticket from the Azure portal.

Po spuštění aplikace můžete vyzkoušet různé zásady indexování a úrovně konzistence a pochopit jejich dopad na propustnost a latenci.After you have the app running, you can try different indexing policies and consistency levels to understand their impact on throughput and latency. Můžete také zkontrolovat zdrojový kód a implementovat podobné konfigurace do vlastních testovacích sad nebo produkčních aplikací.You can also review the source code and implement similar configurations to your own test suites or production applications.

Další krokyNext steps

V tomto článku jsme se podívali na to, jak můžete provádět testování výkonu a škálování pomocí Azure Cosmos DB pomocí konzolové aplikace .NET.In this article, we looked at how you can perform performance and scale testing with Azure Cosmos DB by using a .NET console app. Další informace najdete v následujících článcích:For more information, see the following articles: