Karşılaştırma çerçevesiyle NoSQL için Azure Cosmos DB performansını ölçme

Veri iş yükünüzle kullanılacak veritabanı türüne göre artık her zamankinden daha fazla seçenek vardır. Veritabanı seçmenin önemli faktörlerinden biri, veritabanının veya hizmetin performansıdır, ancak karşılaştırma performansı hantal ve hataya yatkın olabilir. Azure Veritabanları için kıyaslama çerçevesi, yaygın en iyi yöntemleri uygulayan düşük sürtünmeli tariflere sahip popüler açık kaynak karşılaştırma araçlarıyla performansı ölçme sürecini basitleştirir. NoSQL için Azure Cosmos DB'de çerçeve, Java SDK'sı için en iyi yöntemleri uygular ve açık kaynak YCSB aracını kullanır. Bu kılavuzda, bu karşılaştırma çerçevesini kullanarak çerçeveyi tanıyacak bir okuma iş yükü uygulayacaksınız.

Önkoşullar

Azure Cosmos DB hesap kaynakları oluşturma

İlk olarak, NoSQL hesabı için mevcut API'de bir veritabanı ve kapsayıcı oluşturursunuz.

  1. Azure portal NoSQL için mevcut API'nize gidin.

  2. Kaynak menüsünde Veri Gezgini'ı seçin.

    Kaynak menüsünde vurgulanan Veri Gezgini seçeneğinin ekran görüntüsü.

  3. Veri Gezgini sayfasında, komut çubuğundaKi Yeni Kapsayıcı seçeneğini belirleyin.

    Veri Gezgini komut çubuğundaki Yeni Kapsayıcı seçeneğinin ekran görüntüsü.

  4. Yeni Kapsayıcı iletişim kutusunda aşağıdaki ayarlarla yeni bir kapsayıcı oluşturun:

    Ayar Değer
    Veritabanı kimliği ycsb
    Veritabanı aktarım hızı türü El ile
    Veritabanı aktarım hızı miktarı 400
    Kapsayıcı kimliği usertable
    Bölüm anahtarı /id

    Veri Gezgini sayfasındaki Yeni Kapsayıcı iletişim kutusunun ekran görüntüsü.

Karşılaştırma çerçevesini Azure'a dağıtma

Şimdi bir Azure Resource Manager şablonu kullanarak karşılaştırma çerçevesini varsayılan okuma tarifiyle Azure'a dağıtacaksınız.

  1. Bu bağlantıda bulunan bir Azure Resource Manager şablonu kullanarak karşılaştırma çerçevesini dağıtın.

    Azure'a dağıt düğmesi.

  2. Özel Dağıtım sayfasında aşağıdaki parametreler

    Parametre değerlerinin doldurulduğu Özel Dağıtım sayfasının ekran görüntüsü.

  3. Şablonu dağıtmak için Gözden Geçir + oluştur'u ve ardından Oluştur'u seçin.

  4. Dağıtımın tamamlanmasını bekleyin.

    İpucu

    Dağıtımın tamamlanması 5-10 dakika sürebilir.

Karşılaştırma sonuçlarını görüntüleme

Artık karşılaştırma işinin durumunu denetlemek ve toplanan sonuçları görüntülemek için mevcut Azure Depolama hesabını kullanabilirsiniz. Durum bir depolama tablosu kullanılarak depolanır ve sonuçlar CSV biçimi kullanılarak bir depolama blobu halinde toplanır.

  1. Azure portal mevcut Azure Depolama hesabınıza gidin.

  2. ycsbbenchmarkingmetadata adlı bir depolama tablosuna gidin ve bölüm anahtarına ycsb_sqlsahip varlığı bulun.

    Depolama hesabındaki ycsbbenchmarkingMetadata tablosunun ekran görüntüsü.

  3. JobStatus Tablo varlığının alanını gözlemleyin. Başlangıçta işin durumudur Started ve özelliğinde JobStartTime bir zaman damgası içerir ancak özelliği içermez JobFinishTime .

  4. İşin durumu Finished ve özelliğine bir zaman damgası içerene JobFinishTime kadar bekleyin.

    İpucu

    İşin tamamlanması yaklaşık 20-30 dakika sürebilir.

  5. ycsbbenchmarking-* ön ekiyle aynı hesaptaki depolama kapsayıcısına gidin. Araç için çıkış ve tanılama bloblarını gözlemleyin.

    Karşılaştırma aracındaki kapsayıcı ve çıkış bloblarının ekran görüntüsü.

  6. aggregation.csv blobunu açın ve içeriği gözlemleyin. Artık tüm karşılaştırma istemcilerinden toplanan sonuçları içeren bir CSV veri kümeniz olmalıdır.

    Toplama sonuçları blobunun içeriğinin ekran görüntüsü.

    Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond)
    READ,180000,299,706,448255,1079,1159,2867
    

Tarifler

Azure Veritabanları için kıyaslama çerçevesi, "1 tıklama" deneyimi için temel alınan karşılaştırma aracına geçirilen iş yükü tanımlarını kapsüllemek için tarifler içerir. İş yükü tanımları, Azure Cosmos DB ekibi ve karşılaştırma aracının ekibi tarafından yayımlanan en iyi yöntemlere göre tasarlanmıştır. Tarifler test edildi ve tutarlı sonuçlar için doğrulandı.

GitHub deposundaki tüm okuma ve yazma tarifleri için aşağıdaki gecikme sürelerini görmeyi bekleyebilirsiniz.

  • Okuma gecikmesi

    Yaklaşık 1 milisaniye ile 2 milisaniye arasında ortalama okuma gecikmesi diyagramı.

  • Yazma gecikme süresi

    Yaklaşık 4 milisaniyelik ortalama yazma gecikme süresi diyagramı.

Genel sorunlar

Bu bölüm, karşılaştırma aracını çalıştırırken oluşabilecek yaygın hataları içerir. Aracın hata günlükleri genellikle Azure Depolama hesabındaki bir kapsayıcıda kullanılabilir.

Depolama hesabındaki kapsayıcı ve blobların ekran görüntüsü.

  • Günlükler depolama hesabında kullanılamıyorsa, bu sorun genellikle yanlış veya eksik bir depolama bağlantı dizesinden kaynaklanır. Bu durumda, bu hata istemci sanal makinesinin /home/benchmarking klasöründeki agent.out dosyasında listelenir.

    Error while accessing storage account, exiting from this machine in agent.out on the VM
    
  • Azure Cosmos DB uç nokta URI'sinin yanlış veya ulaşılamaz olması durumunda bu hata hem istemci VM'sinde hem de depolama hesabında agent.out dosyasında listelenir.

    Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known 
    
  • Bu hata, Azure Cosmos DB anahtarı yanlışsa hem istemci VM'sinde hem de depolama hesabında agent.out dosyasında listelenir.

    The input authorization token can't serve the request. The wrong key is being used….
    

Sonraki adımlar