Veritabanınızın Profilini Alın

Firebase KSA'ya yerleştirilmiş veritabanı profil oluşturucu aracıyla Firebase Realtime Database performansını ölçün. Profiler aracı, belirli bir süre boyunca 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ı belirlemek ve dizinlenmemiş sorguları azaltmak için ayrıntılı raporu kullanın.

Profil oluşturma

  1. Firebase Realtime Database uygulamanızda profil oluşturmaya başlamadan önce Firebase CLI'nın en son sürümünü kullandığınızdan ve profil oluşturmak istediğiniz veritabanı ile proje için başlattığınızdan emin olun. Profil oluşturmak istediğiniz 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
    Profiler, veritabanınızdaki işlemleri kaydederken ve 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

Profiler aracı, veritabanınızın işlemleri hakkında topladığı verileri birleştirir ve sonuçları üç ana kategoride gösterir: hız, bant genişliği ve dizinlenmemiş 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 gerçekleştiği veritabanınızdaki yol. 25'ten fazla alt düğüm varsa profiler aracı bunları bir üst yolda daraltır ve $wildcard işaretini ekler. Rapor, veritabanınızın kök dizinini öne eğik çizgiyle / gösteriyor olabilir.
  • Sayı: Belirli bir yolda gerçekleşen işlemlerin sayısı.
  • Ortalama Yürütme Hızı: Sunucunun, bu yoldaki belirli işlem türünü işlemek için gereken iş mantığını yürütmesinin ortalama süresi. Burada ölçülen zaman aralığı, aşağıda açıklanan "Ortalama Beklemede Kalma Süresi" ile ölçülen sürenin ardından başlar.
  • Ortalama Bekleme Süresi: İsteklerin yürütülmeden önce kuyrukta beklediği ortalama süre. Bu gecikme, istemci tarafından başlatılan tüm isteklerde görülür. Toplam sunucu tarafı istek gecikmesi, söz konusu isteğin bekleme süresi ve yürütme hızının toplamına yakındır.
  • İzin Reddedildi: Belirtilen yolda, veritabanınızdaki 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 gereken sunucu yanıt süresi. Okuma yürütme süresi genellikle okunan veri miktarıyla orantılı olarak artar ancak küçük okumalar bile önbellek önceden getirme işlemi nedeniyle gecikebilir.
Yazma Yürütme Hızı İstemci isteklerinin veritabanına veri yazması için gereken sunucu yanıt süresi. Yazma işlemi, yazılan veri miktarıyla orantılı olarak ölçeklenir.
Bağlantı yürütme hızı Veritabanı istemcileriyle bağlantı kurma isteklerinin sunucu yanıt süresi. Bağlantı istekleriyle ilgili gecikme, bağlantı yönetimiyle ilgili bellek içi sunucu tarafı muhasebe işlemlerinden kaynaklanır.
Yayın Yürütme Hızı

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

Yayın Hızı Raporu'ndaki Sayı ö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ınlıyorsa yayın sayısı, 10 istemci verileri almasına rağmen yalnızca 1 yayın olarak yansıtılı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şlemler genelinde ne kadar veri kullandığı hakkında bilgi sağlar. Ancak, veritabanınıza profil 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ıza ve veritabanınızdan okuma, yazma ve yayın işlemleriyle tüketilen verilerin yük boyutunu kabaca tahmin eder. Bu araç, faturalandırmayı tahmin etmez, performansı ölçer.

Bant genişliği raporu aşağıdaki özellikleri içerir:

  • Yol: İşlemlerin gerçekleştiği veritabanınızdaki yol. 25'ten fazla alt düğüm varsa profiler aracı bunları bir üst yolda daraltır.

  • Toplam: Belirli bir yolda tüm işlemler için 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 Miktarı İstemci SDK'ları ve REST API aracılığıyla gönderilen okuma ve yayın işlemleriyle kullanılan veriler.
Yüklenen Bayt Sayısı Veritabanı sunucusuna gelen yazma istekleri aracılığıyla kullanılan veriler. Silme işlemleri, gelen altında 0 baytlık yazma işlemleri olarak gösterilir.

Dizine Eklenmemiş Sorgular

Dizinlenmemiş sorgular, istemciler tüm verileri bir konumda indirip ardından bu veriler üzerinde sorgu gerçekleştirdiği için maliyetli olabilir. Bu durum, gerekenden daha fazla bant genişliği kullanılmasına neden olur. Veritabanınızın performansını optimize etmek için mümkün olduğunca çok sayıda dizine eklenmemiş sorguyu çözün.

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

  • Yol: Dizinlenmemiş sorguların gerçekleştiği veritabanınızdaki yol.
  • Dizin: Dizinlenmemiş sorguları çözmek için eklemeniz gereken kural. Verilerinizi dizine ekleme başlıklı makalede dizine ekleme hakkında daha fazla bilgi edinin.
  • Sayı: Belirtilen yolda gerçekleşen, dizine eklenmemiş sorguların sayısı.

Gelişmiş profil oluşturma

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 çıktı, her işlem için istemci bilgilerini de içerir. Örneğin: userAgent dizeler ve IP adresleri. Firebase Realtime Database bölümünde profili oluşturulan farklı işlemler hakkında daha fazla bilgi edinin. Firebase Realtime Database İşlem Türleri

Profiler aracı: Faturalandırma aracı değildir

Bant genişliği maliyetini tahmin etmek için profiler aracını kullanmayın. Profiler aracı, faturalandırmayı tahmin etmek için değil, veritabanınızın performansıyla ilgili genel bir resim sunmak, işlemleri izlemenize ve sorunları gidermenize yardımcı olmak için tasarlanmıştı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 ağ trafiğiyle ilgili bazı yaygın örnekler verilmiştir:

  • Protokol ek yükü: Bir oturumun oluşturulması ve sürdürülmesi için sunucu ile istemciler arasında ek trafik gerekir. Bu trafik, temel protokole bağlı olarak şunları içerebilir: Firebase Realtime Database'in anlık protokol ek yükü, WebSocket ek yükü ve HTTP başlığı ek yükü. Her bağlantı kurulduğunda bu ek yük, SSL şifreleme ek yüküyle birlikte bağlantı maliyetlerine katkıda bulunur. Bu genellikle büyük bir bant genişliği miktarı olmasa da yükleriniz küçükse veya sık 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ü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 iletideki TLS kaydı başlıkları için ise yaklaşık 40 B'dir. Çoğu uygulama için bu, faturanızın küçük bir yüzdesidir. Ancak, belirli durumunuzda çok sayıda SSL el sıkışması gerekiyorsa bu oran büyük bir yüzdeye ulaşabilir. Ö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.