Veritabanınızın Profilini Alın

Firebase KSA'ya yerleşik veritabanı profilleyici aracıyla Firebase Realtime Database'ünüzün performansını ö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 için profil oluşturmaya 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 bu sürümü 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 oluşturmaya 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ı: Belirtilen 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ütmesi için geçen ortalama süredir. Burada ölçülen zaman aralığı, aşağıda açıklanan "Beklemede Ortalama Süre" ile ölçülen süreden sonra başlar.
  • Ortalama Bekleme Süresi: İstekler, yürütülmeden önce bekleme sırasında geçirdiği ortalama süredir. Bu gecikme, istemci tarafından başlatılan tüm isteklerde görülür. Sunucu tarafı isteklerin toplam gecikmesi, yaklaşık olarak 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ı İstemcinin veritabanından veri okuma isteklerine sunucu yanıt süresi. Okuma yürütme süresi genellikle okunan veri miktarıyla ölçeklendirilir ancak bazı küçük okumalar bile önbelleğe ön getirme nedeniyle gecikebilir.
Yazma Hızı İstemcinin veritabanına veri yazma isteklerine sunucu yanıt süresi. 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ında 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 Count mülkü, 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 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ı: Belirtilen 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 bilgiyi Verilerinizi dizine ekleme başlıklı makalede bulabilirsiniz.
  • Sayı: Belirtilen yolda gerçekleşen dizine eklenmemiş 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 profilleyici 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 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 büyük miktarda bant genişliği gerektirmese de yükleriniz küçükse veya sık sık kısa bağlantılar yapıyorsanı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.