Veritabanınızın Profilini Oluşturun

Firebase CLI'da yerleşik olarak bulunan veritabanı profil aracı ile Firebase Realtime Database'inizin performansını ölçün. Profil oluşturucu aracı, veritabanınızda belirli bir dönemdeki tüm etkinliği 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 eklenmeyen sorguları azaltmak için ayrıntılı raporu kullanın.

Profil oluşturun

  1. Firebase Realtime Database'inizin profilini oluşturmaya başlamadan önce Firebase CLI'nın en yeni sürümünü kullandığınızdan ve bu sürümü, profilini çıkarmak istediğiniz veritabanı ve proje için başlattığınızdan emin olun. Profil oluşturmak için ilgili projenin düzenleyicisi 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 aracı, veritabanınızdaki işlemleri kaydedip 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ı yorumlama

Profil oluşturucu aracı, veritabanınızın işlemleriyle ilgili olarak topladığı verileri toplar 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 Raporu'nda ölçülen hız, gerçekte son kullanıcıların hızla ilgili deneyimini yansıtmayabilir. Ağ koşulları gibi farklı faktörler, istemci tarafında gecikme ekleyebilir.

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 aracı aracı bunları bir üst yola daraltır ve bir $wildcard işaretçisi ekler. Raporda veritabanınızın kök dizinini düz eğik çizgiyle / görebilirsiniz.
  • Sayı: Belirli bir yolda gerçekleşen işlemlerin sayısıdır.
  • Ortalama Yürütme Hızı: Sunucunun, ilgili yoldaki belirli işlem türünü işlemek için gerekli iş mantığını yürütmesi için geçen ortalama süredir. Burada ölçülen zaman aralığı, aşağıda açıklanan "Ortalama Bekleme Süresi"ne göre ölçülen zaman aralığından sonra başlar.
  • Ortalama Bekleme Süresi: İsteklerin yürütülmeden önce sıraya koyulduğu ortalama süredir. Bu gecikme, istemci tarafından başlatılan tüm istekler için ortaktır. Sunucu tarafı toplam istek gecikmesi, kabaca söz konusu isteğin bekleme süresi ile yürütme hızının toplamıdır.
  • İzin Reddedildi: Belirli bir yolda, veritabanınızda Firebase Veritabanı Kuralları tarafından engellenen işlemlerin sayısı.
İşlem Türüne Göre Hız Raporu
Okuma Yürütme Hızı İstemci isteklerinin veritabanından veri okuması 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 önbelleğin önceden yüklenmesi nedeniyle gecikebilir.
Yazma Yürütme Hızı İstemci isteklerinin veritabanına veri yazması için sunucu yanıt süresi. Yazma yürütme süresi, yazılan veri miktarına göre ölçeklenir.
Yürütme Hızını Bağla Veritabanı istemcileri için oluşturulan isteklerin sunucu yanıt süresi. Bağlantı isteklerinde yaşanan gecikme, çoğunlukla bağlantı yönetimiyle ilgili bellek içi sunucu tarafında muhasebe işlemleridir.
Yayın Yürütme Hızı

Sunucunun, gerçek zamanlı güncellemeler için belirtilen yolu dinleyen istemcilere verileri dağıtması için gereken süre.

Yayın Hızı Raporu'ndaki Count özelliği, bilgileri 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 tamamına bir güncelleme yayınlarsa yayın sayısı, 10 istemci veri 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ği hakkında bilgi sağlar. Bununla birlikte, Bant Genişliği Raporu veritabanınızın profilini oluşturma gibi diğer işlemler için kullanılan bant genişliğini içermediğinden faturalandırmayı tahmin etmek için Bant Genişliği Raporunu kullanmamalısınız. Bant Genişliği Raporu; veritabanınızda okuma, yazma ve yayınlama işlemleri tarafından tüketilen verilerin yük boyutunu kabaca tahmin eder. Bu araç 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 aracı aracı bunları daraltarak üst yol haline getirir.

  • Toplam: Belirli bir yoldaki tüm işlemlerde kullanılan toplam giden veya gelen bayt miktarı.

  • Sayı: Belirli bir yolda gerçekleşen işlemlerin sayısıdır.

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

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

Dizine Eklenmeyen Sorgular

İstemciler bir konumdaki tüm verileri indirip burada sorgu gerçekleştirdiğinden dizine eklenmeyen sorgular pahalı olabilir. Bu durumda gerekenden daha fazla bant genişliği kullanılır. Veritabanınızın performansını optimize etmek için dizine eklenmemiş mümkün olduğunca çok sayıda sorguyu çözümleyin.

Dizine Eklenmeyen Sorgular raporu aşağıdaki özellikleri gösterir:

  • Yol: Dizine eklenmeyen sorguların veritabanınızda gerçekleştiği yol.
  • Dizin: Dizine eklenmeyen sorguları çözümlemek için eklemeniz gereken kural. Dizine ekleme hakkında daha fazla bilgi için Verilerinizi dizine ekleme bölümüne bakın.
  • Sayı: Belirtilen yolda gerçekleşen dizine eklenmemiş sorguların sayısı.

Gelişmiş profil çıkarma

Veritabanınızın işlediği tüm işlemleri görmek için veritabanınızın profilini oluştururken --raw işaretini aşağıdaki şekilde kullanın:

firebase database:profile --raw

Ham çıkış, her işlem için userAgent dizeleri ve IP adresleri gibi istemci bilgilerini de içerir. Firebase Realtime Database İşlem Türleri bölümünden Firebase Realtime Database'inizde profili oluşturulan farklı işlemler hakkında daha fazla bilgi edinin.

Profil aracı: Faturalandırma aracı değil

Bant genişliği maliyetini tahmin etmek için profil oluşturucu aracını kullanmayın. Profil aracı aracının amacı, faturalandırmayı tahmin etmek yerine işlemleri izlemenize ve sorunları gidermenize yardımcı olmak amacıyla veritabanınızın performansıyla ilgili genel bir görünüm sunmaktır. Ağ trafiğini hesaba katmaz. Yalnızca yanıtlarda gönderilen uygulama verilerinin tahminini kaydeder.

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

  • Protokol ek yükü: Oturum oluşturmak ve sürdürmek için sunucu ile istemciler arasında ek trafik gerekir. 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 üst bilgisi ek yükü. Her bağlantı kurulduğunda, bu ek yük, SSL şifrelemesi ek yüküyle birlikte bağlantı maliyetlerini artırır. Bu, büyük miktarda bant genişliği olmasa da yükleriniz çok azsa veya sık ve kısa bağlantılar kullanıyorsanız yüksek bir boyuta sahip olabilir.
  • SSL şifreleme ek yükü: Güvenli bağlantılar için gerekli olan SSL şifreleme ek yüküyle ilişkili bir maliyet vardır. Ortalama olarak bu maliyet, ilk el sıkışma için yaklaşık 3,5 KB, giden her bir iletide ise TLS kayıt üstbilgileri için yaklaşık 40 milyardır. Çoğu uygulama için bu, faturanızın küçük bir yüzdesidir. Ancak durumunuz çok sayıda SSL el sıkışması gerektiriyorsa bu oran yüksek bir yüzdeye dönüşebilir. Örneğin, TLS oturum biletlerini desteklemeyen cihazlar çok sayıda SSL bağlantı el sıkışması gerektirebilir.

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