Veritabanınızın Profilini Alın

Firebase CLI'da yerleşik olarak bulunan veritabanı profil oluşturucu aracıyla Firebase Realtime Database uygulamanızın performansını ölçün. Profil oluşturma aracı, belirli bir süre boyunca veritabanınızdaki tüm etkinlikleri günlüğe kaydeder ve ardından ayrıntı raporu 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 profilinizi oluşturmaya başlamadan önce Firebase CLI'nın en yeni sürümünü kullandığınızdan ve profilini oluşturmak istediğiniz veritabanı ile proje için CLI'yı 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 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 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 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ı tam olarak yansıtmayabilir. Ağ koşulları gibi farklı faktörler, istemci tarafında gecikmeye neden olabilir.

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 oluşturma aracı bunları bir üst yolda daraltır ve $wildcard işaretini ekler. Raporda, veritabanınızın kök dizinini eğik çizgi / ile temsil edilmiş olarak görebilirsiniz.
  • Sayı: Belirtilen yolda gerçekleşen işlem sayısı.
  • Ortalama Yürütme Hızı: Sunucunun, ilgili yoldaki belirli işlem türünü işlemek için gereken iş mantığını yürütmesi için geçen ortalama süre. Burada ölçülen zaman aralığı, aşağıda açıklanan "Ortalama Bekleme Süresi" ile ölçülen süreden sonra başlar.
  • Ortalama Bekleme Süresi: İsteklerin yürütülmeden önce sırada 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, kabaca ilgili 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şlem sayısı.
İşlem Türüne Göre Hız Raporu
Okuma yürütme hızı İstemcilerin veritabanından veri okuma isteklerine sunucunun yanıt verme süresi. Okuma yürütme süresi genellikle okunan veri miktarına göre ölçeklenir ancak bazı küçük okumalar da önbellek önceden getirme işlemi nedeniyle gecikebilir.
Yazma yürütme hızı İstemcinin veritabanına veri yazma istekleri için sunucu yanıt süresi. Yazma yürütme süresi, yazılan veri miktarına göre ölçeklenir.
Connect Yürütme Hızı Veritabanı istemcileriyle bağlantı kurma istekleri için sunucu yanıt süresi. Bağlantı isteklerinin gecikme süresi, bağlantı yönetimiyle ilgili bellek içi sunucu tarafı kayıt tutma işlemlerinden kaynaklanır.
Yayın Yürütme Hızı

Sunucunun, gerçek zamanlı güncellemeler için belirli bir yolu dinleyen istemcilere veri dağıtması için geçen 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 tümüne bir güncelleme yayınladıysa yayın sayısı, 10 istemci verileri almış olsa bile 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şlemler genelinde ne kadar veri tükettiği hakkında bilgi sağlar. Ancak Bant Genişliği Raporu'nu faturalandırmayı tahmin etmek için kullanmamanız gerekir. Çünkü bu rapor, veritabanınızın profilini oluşturma gibi diğer işlemler için kullanılan bant genişliğini içermez. Bant Genişliği Raporu, veritabanınıza ve veritabanınızdan okuma, yazma ve yayınlama işlemleri tarafından tüketilen verilerin yük boyutunu kabaca tahmin eder. Bu araç, faturalandırmayı tahmin etmek için değil, performansı ölçmek için kullanılı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 oluşturma aracı bunları bir üst yolda daraltır.

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

  • Sayı: Belirtilen yolda gerçekleşen işlem sayısı.

  • Ortalama: Belirli bir yoldaki işlemler genelinde indirilen veya yüklenen ortalama bayt 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ınlama işlemleriyle tüketilen veriler.
Yüklenen Bayt Sayısı Veritabanı sunucusuna gelen yazma istekleri tarafından tüketilen veri miktarı. Silme işlemleri, gelen bölümünde 0 baytlık yazma işlemleri olarak gösterilir.

Dizine Eklenmeyen Sorgular

Dizine eklenmemiş sorgular pahalı olabilir. Bunun nedeni, istemcilerin bir konumdaki tüm verileri indirip ardından bu veriler üzerinde sorgu gerçekleştirmesidir. Bu, gerekenden daha fazla bant genişliği kullanır. Veritabanınızın performansını optimize etmek için dizine eklenmemiş sorguları mümkün olduğunca çözün.

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

  • Yol: Veritabanınızda dizine eklenmemiş sorguların 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 başlıklı makaleyi inceleyin.
  • Sayı: Belirli bir 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 gibi 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 uygulamanızda profili oluşturulan farklı işlemler hakkında daha fazla bilgi edinmek için Firebase Realtime Database İşlem Türleri bölümüne bakın.

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

Bant genişliği maliyetini tahmin etmek için profil oluşturma aracını kullanmayın. Profil oluşturma aracı, veritabanınızın performansıyla ilgili genel bir resim sunarak işlemleri izlemenize ve sorunları gidermenize yardımcı olmak için tasarlanmıştır. Faturalandırmayı tahmin etmek için kullanılmaz. Ağ trafiğini hesaba katmaz, yalnızca yanıtlarda gönderilen uygulama verilerinin tahminini kaydeder.

Aşağıda, Firebase tarafından faturalandırılan ancak veritabanı profilinizde yer almayan ağ trafiğine dair bazı yaygın örnekler verilmiştir:

  • Protokol ek yükü: Bir 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 üstbilgisi ek yükü. Her bağlantı kurulduğunda bu ek yük, SSL şifreleme ek yüküyle birleşerek bağlantı maliyetlerini artırır. Bu genellikle büyük miktarda bant genişliği 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 gereken 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 her giden mesajdaki TLS kayıt başlıkları için yaklaşık 40 B'dir. Çoğu uygulama için bu, faturanızın küçük bir yüzdesidir. Ancak özel durumunuz çok sayıda SSL el sıkışması gerektiriyorsa bu oran büyük bir yüzdeye ulaşabilir. Ö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.