Veritabanınızın Profilini Oluşturun

Firebase CLI'da yerleşik olarak bulunan veritabanı profili oluşturma aracını kullanarak Firebase Realtime Database'inizin performansını ölçün. Profil aracı, belirli bir dönemde veritabanınızdaki tüm etkinlikleri 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.

Profil oluşturun

  1. Firebase Realtime Database'inizin profilini oluşturmaya başlamadan önce, Firebase CLI'ı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 söz konusu projenin düzenleyicisi veya sahibi olmanız gerektiğini unutmayın.

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

    firebase database:profile
    Profil oluşturucu, veritabanınızdaki işlemleri kaydedip profili oluştururken bir durum mesajı gösterir.

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

Sonuçlarınızı yorumlama

Profil oluşturma aracı, veritabanınızın işlemleri hakkında topladığı verileri toplar ve sonuçları üç ana kategoride gösterir: hız, bant genişliği ve dizine eklenmeyen 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, son kullanıcıların hız deneyimini yansıtmayabilir. Ağ koşulları dahil olmak üzere farklı faktörler, istemci tarafında gecikmeyi artırabilir.

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ı daraltarak üst yol oluşturur ve $wildcard işaretçisi ekler. Raporda veritabanınızın kök dizinini, düz eğik çizgi / ile temsil edilen olarak görebilirsiniz.
  • Sayı: Belirli bir yolda gerçekleşen işlemlerin sayısı.
  • Ortalama Yürütme Hızı: Sunucunun, bu yoldaki belirli bir işlem türünü işlemek için gereken 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" ile ölçülenden sonra başlar.
  • Ortalama Bekleme Süresi: İsteklerin yürütülmeden önce sıraya aldığı ortalama süre. Bu gecikme, müşteri tarafından başlatılan tüm isteklerde yaygındır. Toplam sunucu tarafı istek gecikmesi, kabaca söz konusu isteğin bekleme süresi ile yürütme hızının toplamıdır.
  • İzin Reddedildi: Veritabanınızda Firebase Veritabanı Kuralları tarafından engellenen, belirtilen yoldaki işlemlerin sayısı.
İşlem Türüne Göre Hız Raporu
Yürütme Hızını Okuma İstemci isteklerinin veritabanından veri okuması için sunucu yanıt süresidir. Okuma yürütme süresi genellikle okunan veri miktarına göre ölçeklenir. Ancak önbelleğin önceden yüklenmesi, bazı küçük okuma işlemleri de gecikebilir.
Yazma Yürütme Hızı İstemci isteklerinin veritabanına veri yazması için sunucu yanıt süresidir. Yazma işlemi süresi, yazılan veri miktarına göre ölçeklendirilir.
Yürütme Hızını Bağla Veritabanı istemcilerine oluşturulacak isteklerin sunucu yanıt süresi. Bağlantı isteklerindeki gecikme, bağlantı yönetimiyle ilgili olarak bellek içi sunucu tarafında muhasebe kayıtları tarafından belirlenir.
Yayın Yürütme Hızı

Sunucunun, gerçek zamanlı güncellemeler için belirtilen yolu dinleyen müşterilere veri dağıtmak için harcadığı süre.

Yayın Hızı Raporu'ndaki Sayı özelliği, bilgileri alan istemci sayısını değil, gerçekleşen yayın sayısını toplar. Örneğin, belirli bir yolda 10 istemci dinliyorsa ve sunucu 10 istemcinin hepsine bir güncelleme yayınlarsa 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 değildir.

Bant genişliği

Bant Genişliği Raporu, veritabanınızın gelen ve giden işlemlerde ne kadar veri kullandığı hakkında bilgi sağlar. Bununla birlikte, faturalandırmayı tahmin etmek için Bant Genişliği Raporu'nu, veritabanınızın profilini çıkarma gibi diğer işlemler için kullanılan bant genişliğini içermez. Bu nedenle, bu raporu kullanmamalısınız. Bant Genişliği Raporu kabaca veritabanınıza gelen ve veritabanınızdan gelen okuma, yazma ve yayınlama işlemleri için kullanılan verilerin yük boyutunu tahmin eder. Performansı ölçen bir araçtır, faturalandırmayı tahmin etmez.

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 oluşturur.

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

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

  • Ortalama: Belirli bir 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 aracılığıyla tüketilen veriler.
Yüklenen Bayt Sayısı Veritabanı sunucusuna gelen yazma istekleri aracılığıyla tüketilen veriler. Silme işlemleri, gelen altında 0 bayta sahip yazma olarak gösterilir.

Dizine Eklenmeyen Sorgular

İstemciler tüm verileri bir konumda indirdikten sonra bu konumda sorgu gerçekleştirdiğinden, dizine eklenmeyen sorgular pahalı olabilir. Bu, gerekenden daha fazla bant genişliği kullanır. Veritabanınızın performansını optimize etmek için dizine eklenmemiş sorguyu olabildiğince çözün.

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

  • Yol: Veritabanınızda dizine eklenmemiş sorguların gerçekleştiği yol.
  • Dizin: Dizine eklenmeyen sorguları çözmek için eklemeniz gereken kural. Dizine ekleme hakkında daha fazla bilgi edinmek için Verilerinizi dizine ekleme bölümüne bakın.
  • Sayı: Belirli bir yolda meydana gelen dizine eklenmeyen sorguların sayısı.

Gelişmiş profil çıkarma

Veritabanınızın gerçekleştirdiği tüm işlemleri görmek için, veritabanınızın profilini çıkarırken aşağıdaki şekilde --raw işaretini kullanın:

firebase database:profile --raw

Ham çıkış, her işlemle ilgili istemci bilgilerini de (ör. userAgent dizeleri ve IP adresleri) içerir. Firebase Realtime Database İşlem Türleri bölümünde Firebase Realtime Database'inizde profillenen farklı işlemler hakkında daha fazla bilgi edinebilirsiniz.

Profil oluşturucu aracı: Faturalandırma aracı değildir

Bant genişliği maliyetini tahmin etmek için profil aracı aracını kullanmayın. Profil oluşturucu aracının amacı, faturalandırmayı tahmin etmek yerine işlemleri izlemenize ve sorunları gidermenize yardımcı olmak için veritabanınızın performansına dair genel bir tablo 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 bazı yaygın ağ trafiği örnekleri verilmiştir:

  • Protokol ek yükü: Oturum oluşturmak ve sürdürmek için sunucu ve istemciler arasında bir miktar 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. Bağlantı her kurulduğunda, SSL şifreleme ek yüküyle birlikte bu ek yük bağlantı maliyetlerine katkıda bulunur. Bu genellikle çok yüksek bir bant genişliği olmasa da yükünüz çok azsa ya da sık sık kısa bağlantılar kuruyorsanız önemli olabilir.
  • SSL şifrelemesi 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 ve giden her iletideki 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 sizin durumunuz çok fazla SSL el sıkışması gerektiriyorsa bu durum büyük bir yüzdeye dönüşebilir. Örneğin, TLS oturum biletlerini desteklemeyen cihazlar çok sayıda SSL bağlantısı el sıkışması gerektirebilir.

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