Aracılığıyla paylaş


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üyle ilgili şu anda 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 açık olabilir. Azure Veritabanları için kıyaslama çerçevesi, yaygın en iyi yöntemleri uygulayan düşük sürtünmeli tariflerle 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ımaya yönelik 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ında mevcut NoSQL hesabı 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ğunda 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:

    Setting Değer
    Veritabanı kimliği ycsb
    Veritabanı aktarım hızı türü Kılavuz
    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.

    Tavsiye

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

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

Şimdi 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 blobuna toplanır.

  1. Azure portalında 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 durumu Started ve JobStartTime özelliğinde bir zaman damgası içerir ancak JobFinishTime özelliği içermez.

  4. İşin durumu Finished olduğunda ve JobFinishTime özelliğinde bir zaman damgası içerdiğinde bekleyin.

    Tavsiye

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

  5. Aynı hesaptaki ycsbbenchmarking-* ön ekine sahip 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
    

Yemek Tarifleri

Azure Veritabanları için karşılaştırma ç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ülleyen 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 tipik okuma gecikmesinin diyagramı.

  • Yazma gecikmesi

    Yaklaşık 4 milisaniyelik ortalama tipik yazma gecikmesinin diyagramı.

Yaygın 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 yoksa, bu sorun genellikle yanlış veya eksik bir depolama hesabı 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
    
  • Bu hata, Azure Cosmos DB uç nokta URI'sinin yanlış olması veya ulaşılamaz olması durumunda 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 
    
  • Azure Cosmos DB anahtarı yanlışsa, bu hata 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