Veritabanınızın Profilini Alın

Firebase KSA'da yerleşik olarak bulunan veritabanı profil aracı aracıyla Firebase Realtime Database performansınızı ölçün. Profilleyici 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şturma

  1. Firebase Realtime Database profillemeye başlamadan önce Firebase CLI'nin en son sürümünü kullandığınızdan ve profil oluşturmak 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 gerekir.

  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

Profilleyici 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 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, son kullanıcıların deneyimlediği hızı 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: İşlemlerin veritabanınızda gerçekleştiği yol. 25'ten fazla alt düğüm varsa profil oluşturma aracı bunları bir üst yola daraltır ve $wildcard işaretçisi ekler. Raporda, veritabanınızın kök dizini öne eğik çizgi / ile gösterilir.
  • Sayı: Belirli bir yolda gerçekleşen işlemlerin sayısı.
  • Ortalama yürütme hızı: Sunucunun, belirli bir işlem türünü bu yolda işlemek için gereken iş mantığını yürütmesinin ortalama süresidir. 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 alındığı 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: Belirtilen yolda, veritabanınızdaki Firebase veritabanı kuralları tarafından engellenen işlemlerin sayısı.
İşlem Türü Bazında Hız Raporu
Okuma Hızı İ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 yürütme süresi, yazılan veri miktarıyla ölçeklendirilir.
Bağlantı yürütme hızı Veritabanı istemcileriyle bağlantı kurma isteklerine verilen sunucu yanıt süresi. Bağlantı isteklerinin gecikmesi, bağlantı yönetimiyle ilgili sunucu tarafı bellek içi muhasebe tarafından belirlenir.
Yayın yürütme hızı

Sunucunun, gerçek zamanlı güncellemeler için belirli yolu dinleyen istemcilere veri dağıtması için geçen 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 tamamına bir güncelleme yayınlarsa 10 istemci verileri 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 kullandığı hakkında bilgi sağlar. Ancak, 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 Raporu'nu kullanmamalısınız. Bant Genişliği Raporu, veritabanınızdan ve veritabanınıza yapılan okuma, yazma ve yayın işlemlerinde tüketilen verilerin yükü boyutunu yaklaşık olarak 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: İşlemlerin veritabanınızda gerçekleştiği yol. 25'ten fazla alt öğe varsa profiler aracı bunları bir üst öğe yolunda toplar.

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

  • Sayı: Belirli bir 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ı Müşteri SDK'ları ve REST API üzerinden gönderilen okuma ve yayınlama 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 bölümünde 0 baytlık yazma işlemleri olarak gösterilir.

Dizine eklenmemiş sorgular

İstemciler bir konumdaki tüm verileri indirip bu veriler üzerinde sorgu gerçekleştirdiği için dizine eklenmemiş sorgular pahalı olabilir. Bu, gerekenden daha fazla bant genişliği kullanır. Veritabanınınızın performansını optimize etmek için dizine eklenmemiş sorgulardan mümkün olduğunca fazlasını çözün.

Dizine Eklenmemiş Sorgular raporunda aşağıdaki özellikler gösterilir:

  • Yol: Dizine eklenmemiş sorguların veritabanınızda gerçekleştiği yol.
  • Dizin: Dizine eklenmemiş 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ın gerçekleştirdiği tüm işlemleri görmek için veritabanınızın profilini oluştururken aşağıdaki gibi --raw işaretini kullanın:

firebase database:profile --raw

Ham çıkışta, her işlemle ilgili müşteri bilgileri (ör. userAgent dizeleri ve IP adresleri) de yer alır. Firebase Realtime Database İşlem Türleri bölümünde, Firebase Realtime Database hesabınızda profil oluşturulan farklı işlemler hakkında daha fazla bilgi edinin.

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

Bant genişliği maliyetini tahmin etmek için profil aracı aracını kullanmayın. Profilleyici aracı, faturalandırmayı tahmin etmek için değil, işlemleri izlemenize ve sorunları gidermenize yardımcı olmak amacıyla veritabanınızın performansıyla ilgili genel bir görünüm sunmayı amaçlar. 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 yükü: Oturum oluşturmak ve sürdürmek için sunucu ile istemciler arasında bazı ek trafik gerekir. Temel protokole bağlı olarak bu trafik şunları içerebilir: Firebase Realtime Database'ın gerçek zamanlı protokol yükü, WebSocket yükü ve HTTP başlığı yükü. Her bağlantı kurulduğunda bu ek maliyet, SSL şifreleme ek maliyetiyle birlikte 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 şifreleme yükü: Güvenli bağlantılar için gerekli SSL şifreleme yüküyle ilişkili bir maliyet vardır. Bu maliyet, ilk el sıkışma işlemi için ortalama 3,5 KB, her giden mesajdaki TLS kaydı üstbilgileri için ise yaklaşık 40 bayttır. Çoğu uygulama için bu, faturanızın küçük bir yüzdesidir. Ancak, belirli durumunuz çok sayıda SSL el sıkışması gerektiriyorsa bu yüzde büyük olabilir. Ö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.