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. veri tabanını güçlendirir, sorunlu alanları tespit eder ve dizine eklenmemiş sorguları azaltır.

Profil oluşturun

  1. Firebase Realtime Database hesabınızın profilini çıkarmaya başlamadan önce Firebase KSA'nın en son sürümüne o veritabanını ve profilini çıkarmak istediğiniz proje için başlatın. Not Bunun için söz konusu 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, hesabınızdaki işlemleri kaydederken bir durum mesajı görüntüler ve profili oluşturur.

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

Sonuçlarınızı yorumlama

Profil oluşturucu aracı, veritabanınızın güvenliği hakkında topladığı verileri işlemleri gerçekleştirir ve sonuçları üç ana kategoride görüntüler: hız, bant genişliği ve dizine eklenmeyen sorgular için de geçerlidir.

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şağıdakiler dahil olmak üzere farklı faktörler istemci tarafında gecikme ekleyebilir.

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 yola daraltır ve $wildcard işaretçisi ekler. Veritabanınızla ilgili raporda öne eğik çizgi / ile gösterilen kök dizin.
  • Sayı: Belirli bir yolda gerçekleşen işlemlerin sayısı.
  • Ortalama Yürütme Hızı: Sunucunun yürütme işlemi için aldığı ortalama süre o yoldaki işlem türünü yönetmek için gereken iş mantığına bağlıdır. 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: İstek tamamlanmadan önce sıraya alınan ortalama süre yürütülüyor. Bu gecikme, müşteri tarafından başlatılan tüm isteklerde yaygındır. İlgili içeriği oluşturmak için kullanılan toplam sunucu tarafı istek gecikmesi, kabaca söz konusu isteğin bekleme süresini ve yürütme hızını artırır.
  • İzin Reddedildi: Verilen tarafından engellenen yol Firebase Veritabanı Kuralları üzerinde değişiklik yapabilirsiniz.
İşlem Türü Bazında Hız Raporu
Yürütme Hızını Okuma İ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ı İstemci isteklerinin Yazma yürütme süresi, yazılan veri miktarıyla ölçeklendirilir.
Bağlantı yürütme hızı Veritabanı istemcilerine oluşturulacak isteklerin 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 Count mülkü, bilgileri alan istemcilerin sayısını değil, gerçekleşen yayınların sayısını toplar. Örneğin, 10 müşteri bir kullanıcının belirli bir yolda dinleme yaptığını ve sunucu, bu URL'lerin istemciler arasındayken, yayın sayısı yalnızca 1 yayını yansıtır, ancak 10 istemci kullanıcı verileri topladı.

İ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. Bant genişliğinin Bununla birlikte, kullanılan bant genişliğini içermediğinden faturalandırmayı tahmin etmek için rapor oluşturma veritabanınızın profilini çıkarma gibi diğer işlemler için. Bant Genişliği Raporu, yaklaşık olarak Veritabanınızda yapılan okuma, yazma ve yayınlama işlemleri tarafından tüketilen verilerdir. 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: Belirli bir 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ı İstemci aracılığıyla gönderilen okuma ve yayın işlemleriyle tüketilen veriler SDK'lar ve REST API.
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 bir konumdaki tüm verileri indirip bu veriler üzerinde sorgu gerçekleştirdiği için dizine eklenmemiş sorgular pahalı olabilir. Bu yöntem, şundan daha fazla bant genişliği kullanır: gerekir. 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: 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 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 istemci 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 profillenen 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. Profil oluşturma aracı veri tabanınızın performansıyla ilgili genel bir fikir vermek amacıyla faturalandırmayı tahmin etmek için değil, operasyonları izleyip sorunları giderirsiniz. 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 seferinde ve tüm SSL şifrelemesi ile birlikte bu ek yük bağlantı maliyetlerine katkı sağlar. 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, cihazlar TLS oturum biletlerini desteklemeyen çok sayıda SSL bağlantı el sıkışmaları olabilir.

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