Veritabanınızın Profilini Oluşturun

Firebase Gerçek Zamanlı Veritabanınızın performansını, Firebase CLI'de yerleşik olarak bulunan veritabanı profil oluşturma aracıyla ölçün. Profil oluşturma aracı, veri tabanınızdaki tüm etkinlikleri belirli bir süre boyunca günlüğe kaydeder ve ardından ayrıntılı bir rapor oluşturur. Veritabanı performansınızla ilgili sorunları gidermek, sorunlu alanları tespit etmek ve dizine eklenmemiş sorguları azaltmak için ayrıntılı raporu kullanın.

Bir profil oluşturun

  1. Firebase Gerçek Zamanlı Veritabanınızın profilini oluşturmaya başlamadan önce, Firebase CLI'nin en son sürümünü kullandığınızdan ve bunu profilini oluşturmak istediğiniz veritabanı ve proje için başlattığınızdan emin olun. Profil oluşturabilmek için söz konusu projenin editörü veya sahibi olmanız gerektiğini unutmayın.

  2. Aşağıdaki komutla veritabanınızın profilini oluşturmaya başlayın:

    firebase database:profile
    Profil oluşturucu, veritabanınızdaki işlemleri kaydederken ve profili oluştururken bir durum mesajı görüntüler.

  3. Profili tamamlamak ve sonuçları görüntülemek için Enter tuşuna basın.

Sonuçlarınızı yorumlayın

Profil oluşturma aracı, veritabanınızın işlemleri hakkında topladığı verileri bir araya getirir ve sonuçları üç ana kategoride görüntüler: hız , bant genişliği ve dizine eklenmemiş sorgular .

Hız

Hız Raporu, her işlem türü için sunucunun yanıt süresini (milisaniye cinsinden) ölçer. Ancak Hız Raporunda ölçülen hız aslında son kullanıcıların hız deneyimini yansıtmayabilir. Ağ koşulları da dahil olmak üzere farklı faktörler istemci tarafında gecikmeye neden olabilir.

Hız Raporu aşağıdaki özellikleri içerir:

  • Yol: Veritabanınızda işlemlerin gerçekleştiği yol. 25'ten fazla alt düğüm varsa, profil oluşturucu aracı bunları bir üst yola daraltır ve bir $wildcard karakter işaretçisi ekler. Veritabanınızın kök dizinini raporda eğik çizgi / ile temsil edilen şekilde görebilirsiniz.
  • Sayım: Verilen yolda gerçekleşen işlemlerin sayısı.
  • Ortalama Yürütme Hızı: Sunucunun söz konusu yoldaki belirli işlem türünü işlemek için gereken iş mantığını yürütmesi için gereken ortalama süre. Burada ölçülen zaman aralığı, aşağıda açıklanan "Ortalama Bekleme Süresi" ile ölçülenden sonra başlar.
  • Ortalama Bekleme Süresi: İsteklerin yürütülmeden önce sıraya girdiği ortalama süre. Bu gecikme, istemci tarafından başlatılan tüm istekler için ortaktır. Toplam sunucu tarafı istek gecikmesi, kabaca o isteğin bekleme süresi ve yürütme hızının toplamıdır.
  • İzin Reddedildi: Veri tabanınızda Firebase Veritabanı Kuralları tarafından engellenen, belirtilen yoldaki işlemlerin sayısı.
Operasyon Türüne Göre Hız Raporu
Yürütme Hızını Oku İstemcinin veritabanından veri okuma istekleri için sunucu yanıt süresi. Okuma yürütme süresi genellikle okunan veri miktarına göre ölçeklenir, ancak bazı küçük okumalar bile önbellek önbelleği nedeniyle geciktirilebilir.
Yazma Yürütme Hızı İstemcinin veritabanına veri yazma istekleri için sunucunun yanıt süresi. Yazılmakta olan veri miktarına göre yürütme süresi ölçeklerini yazın.
Yürütme Hızını Bağlayın Veritabanı istemcilerine kurulacak isteklerin sunucu yanıt süresi. Bağlantı isteklerindeki gecikme, bağlantı yönetimiyle ilgili bellek içi sunucu tarafı defter tutmanın hakimiyetindedir.
Yayın Yürütme Hızı

Sunucunun, gerçek zamanlı güncellemeler için verilen yolu dinleyen istemcilere veri dağıtması için harcadığı süre.

Yayın Hızı Raporundaki Count özelliği, bilgiyi alan istemcilerin sayısını değil, gerçekleşen yayınların sayısını toplar. Örneğin, belirli bir yolda 10 istemci dinliyorsa ve sunucu 10 istemcinin tümüne bir güncelleme yayınlıyorsa, 10 istemci veriyi almış olsa bile yayın sayısı yalnızca 1 yayını yansıtır.

İzin Reddedildi özelliği Yayın Hızı raporuna dahil edilmez.

Bant genişliği

Bant Genişliği Raporu, veritabanınızın gelen ve giden işlemlerde ne kadar veri tükettiğine ilişkin bilgi sağlar. Ancak faturalandırmayı tahmin etmek için Bant Genişliği Raporu'nu kullanmamalısınız çünkü bu rapor, veritabanınızın profilini oluşturmak gibi diğer işlemler için kullanılan bant genişliğini içermez. Bant Genişliği Raporu, veritabanınıza okuma, yazma ve yayınlama işlemleri tarafından tüketilen verilerin yük boyutunu kabaca tahmin eder. Bu, faturalandırmayı tahmin eden değil, performansı ölçen bir araçtır.

Bant Genişliği Raporu aşağıdaki özellikleri içerir:

  • Yol: Veritabanınızda işlemlerin gerçekleştiği yol. 25'ten fazla alt düğüm varsa, profil oluşturucu aracı bunları bir üst yola daraltır.

  • Toplam: Verilen yoldaki tüm işlemlerde kullanılan toplam giden veya gelen bayt sayısı.

  • Sayım: Verilen yolda gerçekleşen işlemlerin sayısı.

  • Ortalama: Belirtilen yoldaki işlemler genelinde indirilen veya yüklenen baytların ortalama sayısı (bayt/yazma veya bayt/okuma).

Bant Genişliği Raporu
İndirilen Bayt Sayısı İstemci SDK'ları ve REST API aracılığıyla gönderilen okuma ve yayın işlemleri yoluyla tüketilen veriler.
Yüklenen Bayt Sayısı Veritabanı sunucusuna gelen yazma istekleri yoluyla tüketilen veriler. Silme işlemleri, gelenlerin altında 0 bayt ile yazma olarak görünür.

Dizinlenmemiş Sorgular

Dizinlenmemiş sorgular pahalı olabilir çünkü istemciler bir konumdaki tüm verileri indirir ve daha sonra bu veriler üzerinde sorgular gerçekleştirir. Bu, gereğinden fazla bant genişliği kullanır. Veritabanınızın performansını optimize etmek için mümkün olduğunca çok sayıda dizine eklenmemiş sorguyu çözümleyin.

Dizini Olmayan Sorgular raporu aşağıdaki özellikleri görüntüler:

  • Yol: Veritabanınızda dizine eklenmemiş sorguların gerçekleştiği yol.
  • Index: İndekslenmemiş sorguları çözümlemek için eklemeniz gereken kural. Verilerinizi dizine ekleme konusunda daha fazla bilgi edinin.
  • Sayım: Verilen yolda meydana gelen dizine eklenmemiş sorguların sayısı.

Gelişmiş profil oluşturma

Veritabanınızın gerçekleştirdiği tüm işlemleri görmek için, veritabanınızın profilini oluştururken --raw bayrağını aşağıdaki gibi kullanın:

firebase database:profile --raw

Ham çıktı ayrıca her işlem için userAgent dizeleri ve IP adresleri gibi istemci bilgilerini de içerir. Firebase Gerçek Zamanlı Veritabanı İşlem Türleri bölümünde Firebase Gerçek Zamanlı Veritabanınızda profillenen farklı işlemler hakkında daha fazla bilgi edinin.

Profil oluşturma aracı: Faturalandırma aracı değil

Bant genişliği maliyetini tahmin etmek için profil oluşturucu aracını kullanmayın. Profil oluşturma aracı, faturalandırmayı tahmin etmek için değil, işlemleri izlemenize ve sorunları gidermenize yardımcı olmak için veritabanınızın performansının genel bir resmini vermeyi amaçlamaktadır. Ağ trafiğini hesaba katmaz, yalnızca yanıtlarda gönderilen uygulama verilerinin tahminini kaydeder.

Firebase tarafından faturalandırılan ve veritabanı profilinizde yer almayan bazı yaygın ağ trafiği örnekleri aşağıda verilmiştir:

  • Protokol yükü: Bir oturumun kurulması ve sürdürülmesi için sunucu ile istemciler arasında bir miktar ek trafik gereklidir. Temel protokole bağlı olarak bu trafik şunları içerebilir: Firebase Realtime Database'in gerçek zamanlı protokol ek yükü, WebSocket ek yükü ve HTTP üstbilgisi ek yükü. Her bağlantı kurulduğunda, bu ek yük, herhangi bir SSL şifreleme ek yüküyle birleştiğinde bağlantı maliyetlerine katkıda bulunur. Bu genellikle büyük bir bant genişliği miktarı olmasa da, yükünüz küçükse veya sık, kısa bağlantılar yapıyorsanız önemli olabilir.
  • SSL şifreleme ek yükü: Güvenli bağlantılar için gerekli olan SSL şifreleme ek yükünün bir maliyeti vardır. Ortalama olarak bu maliyet, ilk el sıkışma için yaklaşık 3,5 KB, giden her mesajdaki TLS kayıt başlıkları için ise yaklaşık 40 milyardır. Çoğu uygulama için bu, faturanızın küçük bir yüzdesidir. Ancak, özel durumunuz çok sayıda SSL anlaşması gerektiriyorsa bu büyük bir yüzdeye dönüşebilir. Örneğin, TLS oturum biletlerini desteklemeyen cihazlar, çok sayıda SSL bağlantı anlaşması gerektirebilir.

Faturanızı anlama ve tahmin etme hakkında daha fazla bilgi edinin.