Çok kiracılı saas uygulamasında parçalanmış çok kiracılı Azure SQL Veritabanı performansını izleme ve yönetme

Şunlar için geçerlidir:Azure SQL Veritabanı

Bu öğreticide, SaaS uygulamalarında kullanılan çeşitli temel performans yönetimi senaryoları araştırılır. Parçalı çok kiracılı veritabanlarında etkinliğin benzetimini yapmak için yük oluşturucu kullanıldığında, Azure SQL Veritabanı'nın yerleşik izleme ve uyarı özellikleri gösterilir.

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı uygulaması, mekan (kiracı) verilerinin potansiyel olarak birden çok veritabanına kiracı kimliğiyle dağıtıldığı parçalı çok kiracılı bir veri modeli kullanır. Birçok SaaS uygulaması gibi, beklenen kiracı iş yükü düzeni öngörülemez ve düzensizdir. Diğer bir deyişle, bilet satışı herhangi bir zamanda gerçekleşebilir. Bu tipik veritabanı kullanım düzeninden yararlanmak için, bir çözümün maliyetini iyileştirmek için veritabanlarının ölçeği artırılabilir ve azaltılabilir. Bu tür bir desenle, yüklerin olası birden çok veritabanı arasında makul bir dengeye sahip olduğundan emin olmak için veritabanı kaynak kullanımını izlemek önemlidir. Ayrıca tek tek veritabanlarının yeterli kaynaklara sahip olduğundan ve DTU sınırlarına uygun olmadığından da emin olmanız gerekir. Bu öğreticide veritabanlarını izlemenin ve yönetmenin yolları ve iş yükündeki çeşitlemelere yanıt olarak düzeltici eylem gerçekleştirme işlemleri ele alınıyor.

Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Sağlanan bir yük oluşturucu çalıştırarak parçalanmış çok kiracılı veritabanında kullanımın benzetimini yapın
  • Yükün artmasına yanıt veren veritabanını izleme
  • Artan veritabanı yüküne yanıt olarak veritabanının ölçeğini artırın
  • Tek kiracılı bir veritabanına kiracı sağlama

Bu öğreticiyi tamamlamak için aşağıdaki ön koşulların karşılandığından emin olun:

SaaS performans yönetimi desenlerine giriş

Veritabanı performans yönetimi, performans verilerini derleyip çözümlemeyi ve ardından uygulamanız için kabul edilebilir bir yanıt süresi sağlamak için parametreleri ayarlayarak bu verilere yanıt vermeyi içerir.

Uygulama performansı stratejileri

  • Performansı el ile izlemek zorunda kalmamak için, veritabanları normal aralıkların dışına çıktığında tetiklenecek uyarılar ayarlamak en etkili yollardandır.
  • Veritabanının işlem boyutundaki kısa vadeli dalgalanmalara yanıt vermek için DTU düzeyinin ölçeği artırılabilir veya azaltılabilir. Bu dalgalanma düzenli veya öngörülebilir bir şekilde gerçekleşirse veritabanını ölçeklendirme işlemi otomatik olarak gerçekleşecek şekilde zamanlanabilir. Örneğin, iş yükünüzün hafif olduğunu bildiğiniz gece veya hafta sonları gibi zamanlarda ölçeği azaltabilirsiniz.
  • Kiracılardaki uzun süreli dalgalanmalara veya değişikliklere yanıt vermek için tek tek kiracılar başka bir veritabanına taşınabilir.
  • Tek tek kiracı yükündeki kısa vadeli artışlara yanıt vermek için, tek tek kiracılar veritabanından alınabilir ve tek tek işlem boyutu atanabilir. Yük azaltıldıktan sonra kiracı çok kiracılı veritabanına döndürülebilir. Bu önceden bilindiğinde, veritabanının her zaman ihtiyaç duyduğu kaynaklara sahip olduğundan emin olmak ve çok kiracılı veritabanındaki diğer kiracıları etkilememek için kiracılar önceden taşınabilir. Popüler bir etkinlik için bilet satışı yoğunluğu yaşanan bir mekanda olduğu gibi bu gereksinim öngörülebildiği takdirde bu yönetim davranışı uygulamayla tümleştirilebilir.

Azure portalı, çoğu kaynak üzerinde yerleşik izleme ve uyarı özelliği sağlar. SQL Veritabanı için izleme ve uyarı veritabanlarında kullanılabilir. Bu yerleşik izleme ve uyarı, kaynağa özgüdür, bu nedenle az sayıda kaynak için kullanılması uygundur, ancak birçok kaynakla çalışırken uygun değildir.

Birçok kaynakla çalıştığınız yüksek hacimli senaryolarda Azure İzleyici günlükleri kullanılabilir. Bu, Log Analytics çalışma alanında toplanan yayılan günlükler üzerinde analiz sağlayan ayrı bir Azure hizmetidir. Azure İzleyici günlükleri birçok hizmetten telemetri toplayabilir ve uyarıları sorgulamak ve ayarlamak için kullanılabilir.

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı uygulama kaynak kodunu ve betiklerini alma

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı betikleri ve uygulama kaynak kodu WingtipTicketsSaaS-MultitenantDB GitHub deposunda bulunur. Wingtip Biletleri SaaS betiklerini indirme ve engellemeyi kaldırma adımları için genel kılavuza göz atın.

Ek kiracılar sağlama

Performans izleme ve yönetimin büyük ölçekte nasıl çalıştığını iyi anlamak için bu öğretici, parçalı çok kiracılı bir veritabanında birden çok kiracınız olmasını gerektirir.

Önceki öğreticide zaten bir grup kiracı sağladıysanız Tüm kiracı veritabanlarında kullanımı simüle etme bölümüne atlayın.

  1. PowerShell ISE'de ...\Learning Modules\Performance Monitoring and Management\Demo-PerformanceMonitoringAndManagement.ps1 dosyasını açın. Bu öğretici sırasında birkaç senaryo çalıştıracağından bu betiği açık tutun.
  2. $DemoScenario = 1, Kiracı grubu sağlama değerini ayarlayın
  3. Betiği çalıştırmak için F5'e basın.

Betik, birkaç dakika içinde çok kiracılı veritabanına 17 kiracı dağıtır.

New-TenantBatch betiği, parçalanmış çok kiracılı veritabanında benzersiz kiracı anahtarları olan yeni kiracılar oluşturur ve bunları kiracı adı ve mekan türüyle başlatır. Bu, uygulamanın yeni bir kiracı sağlama şekliyle tutarlıdır.

Tüm kiracı veritabanlarındaki kullanımın benzetimini gerçekleştirme

Demo-PerformanceMonitoringAndManagement.ps1 betiği, çok kiracılı veritabanında çalışan bir iş yükünün simülasyonunu oluşturan sağlanır. Yük, kullanılabilir yük senaryolarından biri kullanılarak oluşturulur:

Demo Senaryo
2 Normal yoğunluk yükü oluşturma (yaklaşık 30 DTU)
3 Kiracı başına daha uzun ani artışlarla yük oluşturma
4 Kiracı başına daha yüksek DTU artışlarıyla yük oluşturma (yaklaşık 70 DTU)
5 Tek bir kiracıda yüksek yoğunluklu (yaklaşık 90 DTU) ve diğer tüm kiracılarda normal yoğunluk yükü oluşturma

Yük oluşturucu her kiracı veritabanına yapay bir yalnızca CPU yükü uygular. Oluşturucu her kiracı veritabanı için yükü oluşturan saklı yordamı düzenli olarak çağıran bir iş başlatır. Yük düzeyleri (DTU'larda), süre ve aralıklar tüm veritabanlarında farklılık gösterir ve öngörülemeyen kiracı etkinliğinin benzetimini gerçekleştirir.

  1. PowerShell ISE'de ...\Learning Modules\Performance Monitoring and Management\Demo-PerformanceMonitoringAndManagement.ps1 dosyasını açın. Bu öğretici sırasında birkaç senaryo çalıştıracağından bu betiği açık tutun.
  2. $DemoScenario = 2'yi ayarla, Normal yoğunluk yükü oluştur
  3. Tüm kiracılarınıza yük uygulamak için F5 tuşuna basın.

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı bir SaaS uygulamasıdır ve SaaS uygulamasındaki gerçek dünya yükü genellikle düzensiz ve tahmin edilemezdir. Yük oluşturucu, bunun benzetimini gerçekleştirmek için kiracılar genelinde dağıtılan rastgele yük oluşturur. Yük düzeninin ortaya çıkması için birkaç dakika gerekir, bu nedenle aşağıdaki bölümlerde yükü izlemeye çalışmadan önce yük oluşturucuyu 3-5 dakika çalıştırın.

Önemli

Yük oluşturucu yeni bir PowerShell penceresinde bir dizi iş olarak çalışıyor. Oturumu kapatırsanız yük oluşturucu durur. Yük oluşturucu, oluşturucu başlatıldıktan sonra sağlanan yeni kiracılarda yük oluşturduğu bir iş çağırma durumunda kalır. Yeni işleri çağırmayı durdurmak ve betikten çıkmak için Ctrl-C tuşlarını kullanın. Yük oluşturucu çalışmaya devam eder, ancak yalnızca mevcut kiracılarda çalışır.

Azure portalını kullanarak kaynak kullanımını izleme

Uygulanan yükten kaynaklanan kaynak kullanımını izlemek için, kiracıları içeren çok kiracılı veritabanına tenants1portalı açın:

  1. Azure portalını açın ve sunucusuna tenants1-mt-<USER>gidin.
  2. Ekranı aşağı kaydırın, veritabanlarını bulun ve kiracıları seçin1. Bu parçalanmış çok kiracılı veritabanı, şimdiye kadar oluşturulan tüm kiracıları içerir.

A screenshot of the Azure portal showing the database monitoring chart.

DTU grafiğini inceleyin.

Veritabanında performans uyarıları ayarlama

Veritabanında %75 kullanımı tetikleyen >bir uyarı ayarlayın:

  1. tenants1 Veritabanını (tenants1-mt-<USER>sunucuda) Azure portalında açın.

  2. Uyarı Kuralları'nı ve ardından + Uyarı ekle'yi seçin:

    A screenshot from the Azure portal. UnderMonitoring and Alert Rules, the Add alert page is shown.

  3. Yüksek DTU gibi bir ad belirtin,

  4. Aşağıdaki değerleri ayarlayın:

    • Ölçüm = DTU yüzdesi
    • Koşul = büyüktür
    • Eşik = 75.
    • Nokta = Son 30 dakika içinde
  5. Ek yönetici e-postaları kutusuna bir e-posta adresi ekleyin ve Tamam'ı seçin.

    A screenshot from the Azure portal. The Add an Alert rule page is shown.

Meşgul veritabanının ölçeğini artırma

Bir veritabanındaki yük düzeyi, veritabanını en üst düzeye çıkarır ve %100 DTU kullanımına ulaşırsa veritabanı performansı etkilenir ve sorgu yanıt sürelerini yavaşlatma olasılığı vardır.

Kısa vadede, ek kaynaklar sağlamak için veritabanının ölçeğini artırmayı veya kiracıları çok kiracılı veritabanından kaldırmayı (çok kiracılı veritabanından tek başına bir veritabanına taşımayı) göz önünde bulundurun.

Daha uzun vadede, veritabanı performansını geliştirmek için sorguları veya dizin kullanımını iyileştirmeyi göz önünde bulundurun. Uygulamanın performans sorunlarına karşı duyarlılığına bağlı olarak, veritabanını %100 DTU kullanımına ulaşmadan önce ölçeklendirmek en iyi yöntemdir. Sizi önceden uyarması için bir uyarı ayarlayın.

Oluşturucu tarafından üretilen yükü artırarak meşgul bir veritabanının benzetimini yapabilirsiniz. Kiracıların daha sık ve daha uzun süre patlamalarına neden olarak, tek tek kiracıların gereksinimlerini değiştirmeden çok kiracılı veritabanındaki yükü artırır. Veritabanının ölçeğini artırmak portalda veya PowerShell'den kolayca yapılabilir. Bu alıştırmada portal kullanılmaktadır.

  1. Her kiracı için gereken en yüksek yükü değiştirmeden veritabanındaki toplam yükün yoğunluğunu artırmak için veritabanı başına daha uzun ve daha sık artışlarla yük oluştur adlı 3 değerini ayarlayın$DemoScenario = .
  2. Bir yükü tüm kiracı veritabanlarınıza uygulamak için F5 tuşuna basın.
  3. Azure portalında tenants1 veritabanına gidin.

Üst grafikteki artan veritabanı DTU kullanımını izleyin. Yeni daha yüksek yükün devreye alınması birkaç dakika sürer, ancak veritabanının maksimum kullanıma ulaşmaya başladığını ve yük yeni desene göre hızla aşırı yüklediğini görmeniz gerekir.

  1. Veritabanının ölçeğini büyütmek için ayarlar sayfasında Fiyatlandırma katmanı (DTU'ları ölçeklendirme) öğesini seçin.
  2. DTU ayarını 100 olarak ayarlayın.
  3. Veritabanını ölçeklendirme isteğini göndermek için Uygula'yı seçin.

İzleme grafiklerini görüntülemek için kiracılara geri dönün1 >Genel Bakış. Veritabanına daha fazla kaynak sağlamanın etkisini izleyin (ancak birkaç kiracı ve rastgele bir yükle, bir süre çalışana kadar her zaman kesin olarak görmek kolay değildir). Grafiklere bakarken, üst grafikte %100'lük bir değerin 100 DTU'yu temsil ettiğini, alt grafikte ise %100'lük bir değerin hala 50 DTU olduğunu aklınızda bulundurun.

İşlem boyunca veritabanları çevrimiçi ve tam olarak kullanılabilir durumdadır. Uygulama kodu her zaman bırakılan bağlantıları yeniden denemek için yazılmalıdır ve bu nedenle veritabanına yeniden bağlanır.

Kendi veritabanında yeni bir kiracı sağlama

Parçalı çok kiracılı model, diğer kiracılarla birlikte çok kiracılı bir veritabanında yeni bir kiracı sağlamayı veya kiracıyı kendi veritabanında sağlamayı seçmenizi sağlar. Bir kiracıyı kendi veritabanında sağlayarak, ayrı veritabanındaki yalıtımdan yararlanır ve bu kiracının performansını diğerlerinden bağımsız olarak yönetmenize, bu kiracıyı diğerlerinden bağımsız olarak geri yüklemenize vb. olanak tanır. Örneğin, ücretsiz veya normal müşterileri çok kiracılı bir veritabanına, premium müşterileri ise tek tek veritabanlarına yerleştirmeyi seçebilirsiniz. Yalıtılmış tek kiracılı veritabanları oluşturulursa, kaynak maliyetlerini iyileştirmek için elastik havuzda toplu olarak yönetilebilirler.

Kendi veritabanında zaten yeni bir kiracı sağladıysanız, sonraki birkaç adımı atlayın.

  1. PowerShell ISE'de dosyasını açın...\Learning Modules\ProvisionTenants\Demo-ProvisionTenants.ps1.
  2. ve $VenueType = "dance"öğesini değiştirin$TenantName = "Salix Salsa".
  3. değerini ayarlayın $Scenario = 2, Yeni bir tek kiracılı veritabanında kiracı sağlayın.
  4. Betiği çalıştırmak için F5'e basın.

Betik bu kiracıyı ayrı bir veritabanında sağlayacak, veritabanını ve kiracıyı kataloğa kaydedecek ve ardından kiracının Olaylar sayfasını tarayıcıda açacaktır. Olay Merkezi sayfasını yenilediğinizde "Salix Salsa" öğesinin bir mekan olarak eklendiğini görürsünüz.

Not

Çok kiracılı veritabanlarından tek bir kiracıya geri yükleme mümkün değildir.

Tek bir veritabanının performansını yönetme

Çok kiracılı bir veritabanındaki tek bir kiracı sürekli yüksek yükle karşılaşırsa, veritabanı kaynaklarına hakim olma ve aynı veritabanındaki diğer kiracıları etkileme eğiliminde olabilir. Etkinliğin bir süre devam etmesi olasıysa, kiracı geçici olarak veritabanından dışarı ve kendi tek kiracılı veritabanına taşınabilir. Bu, kiracının ihtiyaç duyduğu ek kaynaklara sahip olmasını sağlar ve diğer kiracılardan tamamen yalıttır.

Bu alıştırmada, popüler bir etkinlik için biletler satışa çıktığında Salix Salsa'nın yüksek yük yaşadığı etkisinin simülasyonu yapılmıştır.

  1. Betiği ...\Demo-PerformanceMonitoringAndManagement.ps1 açın.
  2. değerini ayarlayın $DemoScenario = 5, Tek bir kiracıda (yaklaşık 90 DTU) normal yük ve yüksek yük oluşturun.
  3. öğesini ayarlayın $SingleTenantName = Salix Salsa.
  4. F5’i kullanarak betiği yürütün.

İzleme grafiklerini görüntülemek için Azure portalına gidin ve salixsalsa'ya>Genel Bakış'a gidin.

Diğer performans yönetimi desenleri

Kiracı self servis ölçeklendirme

Ölçeklendirme, yönetim API'si aracılığıyla kolayca çağrılan bir görev olduğundan, kiracı veritabanlarını kiracıya yönelik uygulamanıza ölçeklendirme olanağını kolayca oluşturabilir ve bunu SaaS hizmetinizin bir özelliği olarak sunabilirsiniz. Örneğin, kiracıların ölçek artırma ve azaltma işlemini kendi kendine yönetmesine, belki de doğrudan faturalarına bağlamasına izin verebilirsiniz!

Kullanım desenlerini eşleştirmek için zamanlamaya göre veritabanının ölçeğini artırma ve azaltma

Toplu kiracı kullanımı öngörülebilir kullanım desenlerini izlediğinde, azure otomasyonu kullanarak veritabanını zamanlamaya göre artırıp azaltabilirsiniz. Örneğin, kaynak gereksinimlerinde düşüş olduğunu bildiğiniz bir veritabanının ölçeğini 18:00'de azaltıp hafta içi 06:00'ya kadar yeniden artırabilirsiniz.

Sonraki adımlar

Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Sağlanan bir yük oluşturucu çalıştırarak parçalanmış çok kiracılı veritabanında kullanımın benzetimini yapın
  • Yükün artmasına yanıt veren veritabanını izleme
  • Artan veritabanı yüküne yanıt olarak veritabanının ölçeğini artırın
  • Tek kiracılı bir veritabanına kiracı sağlama

Ek kaynaklar