Firebase CLI'da yerleşik olarak bulunan veritabanı profil oluşturucu aracıyla Firebase Realtime Database'inizin performansını ölçün. Profil oluşturucu 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 dizine eklenmemiş sorguları azaltmak için ayrıntılı raporu kullanın.
Profil oluştur
Firebase Gerçek Zamanlı Veritabanınızın profilini çıkarmaya başlamadan önce, Firebase CLI'nin en son sürümünü kullandığınızdan ve profilini oluşturmak istediğiniz veritabanı ve proje için başlattığınızdan emin olun. Profil oluşturmak için o projenin editörü veya sahibi olmanız gerektiğini unutmayın.
Aşağıdaki komutla veritabanınızın profilini çıkarmaya başlayın:
firebase database:profileProfil oluşturucu, veritabanınızdan işlemleri kaydederken ve profili oluştururken bir durum mesajı görüntüler.
Profili tamamlamak ve sonuçları görüntülemek için Enter'a basın.
Sonuçlarınızı yorumlayın
Hız
Hız Raporu, her işlem türü için sunucunun yanıt süresini (milisaniye cinsinden) ölçer. Ancak, Hız Raporunda ölçülen hız, aslında son kullanıcıların hızını yansıtmayabilir. Ağ koşulları da dahil olmak üzere farklı faktörler, istemci tarafında gecikme ekleyebilir.
Hız Raporu aşağıdaki özellikleri içerir:
- Yol: Veritabanınızdaki işlemlerin gerçekleştiği yol. 25'ten fazla alt düğüm varsa, profil oluşturucu aracı bunları bir üst yola daraltır ve bir
$wildcardişaretçisi ekler. Veritabanınızın kök dizinini, bir eğik çizgi ile temsil edilen raporda görebilirsiniz
/.
- Count: Verilen yolda gerçekleşen işlem sayısı.
- Ortalama Yürütme Hızı: Sunucunun, o yolda 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çülenden sonra başlar.
- Ortalama Bekleme Süresi: İsteklerin yürütülmeden önce sıraya alındığı ortalama süre. Bu gecikme, istemci tarafından başlatılan tüm istekler için ortaktır. Toplam sunucu tarafı istek gecikmesi, bu isteğin bekleme süresi ve yürütme hızının kabaca toplamıdır.
- İzin Reddedildi: Veritabanınızda Firebase Veritabanı Kuralları tarafından engellenen, belirtilen yolda işlem sayısı.
|İşlem Türüne Göre Hız Raporu|
|Yürütme Hızını Oku||İstemci isteklerinin veritabanından veri okuması için sunucu yanıt süresi. Okuma yürütme süresi genellikle okunan veri miktarına göre ölçeklenir, ancak bazı küçük okumalar bile önbelleğe önceden getirme ile geciktirilebilir.|
|Yürütme Hızını Yaz||İstemci isteklerinin veritabanına veri yazması için sunucu yanıt süresi. Yazılmakta olan veri miktarıyla birlikte yürütme süresi ölçeklerini yazın.||Yürütme Hızını Bağlayın||Veritabanı istemcilerine kurulacak isteklerin sunucu yanıt süresi. Bağlantı istekleri için gecikme, bağlantı yönetimiyle ilgili bellek içi sunucu tarafında defter tutma tarafından yönetilir.|
|Yayın Yürütme Hızı|
Sunucunun, gerçek zamanlı güncellemeler için verilen yolu dinleyen istemcilere veri dağıtması için geçen süre.
Yayın Hızı Raporundaki Count özelliği, bilgileri alan istemcilerin sayısını değil, gerçekleşen yayınların sayısını toplar. Örneğin, 10 istemci belirli bir yolu dinliyorsa ve sunucu 10 istemcinin tümüne bir güncelleme yayınlıyorsa, 10 istemci verileri alsa 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 tükettiğine ilişkin bilgi sağlar. Bununla birlikte, veritabanınızın profilini çıkarmak 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 Raporunu kullanmamalısınız. Bant Genişliği Raporu, veri tabanınıza yapılan ve veri tabanınızdan yapılan okuma, yazma ve yayınlama işlemleri tarafından tüketilen verilerin yük boyutunu kabaca tahmin eder. Bu, faturalandırmayı öngören değil, performansı ölçen bir araçtır.
Bant Genişliği Raporu aşağıdaki özellikleri içerir:
Yol: Veritabanınızdaki işlemlerin gerçekleştiği yol. 25'ten fazla alt düğüm varsa, profil oluşturucu aracı bunları bir üst yola daraltır.
Toplam: Verilen yolda tüm işlemlerde kullanılan toplam giden veya gelen bayt.
Count: Verilen yolda gerçekleşen işlem sayısı.
Ortalama: Verilen yoldaki işlemlerde indirilen veya yüklenen baytların ortalama sayısı (bayt/yazma veya bayt/okuma).
|Bant Genişliği Raporu|
|İndirilen Bayt||İstemci SDK'ları ve REST API aracılığıyla gönderilen okuma ve yayın işlemleri aracılığıyla tüketilen veriler.|
|Yüklenen Bayt||Veritabanı sunucusuna gelen yazma istekleri aracılığıyla tüketilen veriler. Silmeler, gelenler altında 0 bayt ile yazma olarak görünür.|
Dizinlenmemiş Sorgular
Dizinlenmemiş sorgular pahalı olabilir, çünkü istemciler tüm verileri bir konuma indirir ve ardından üzerinde sorgular gerçekleştirir. Bu, gerekenden daha fazla bant genişliği kullanır. Veritabanınızın performansını optimize etmek için mümkün olduğunca çok sayıda dizine eklenmemiş sorguyu çözün.
Dizin Oluşturulmamış Sorgular raporu aşağıdaki özellikleri görüntüler:
- Yol: Dizinlenmemiş sorguların veritabanınızda gerçekleştiği yol.
- Dizin: Dizinlenmemiş sorguları çözmek için eklemeniz gereken kural. Verilerinizi dizine ekleme konusunda daha fazla bilgi edinin.
- Count: Verilen yolda meydana gelen dizine eklenmemiş sorguların sayısı.
Gelişmiş profil oluşturma
Veritabanınızın gerçekleştirdiği tüm işlemleri görmek için, veritabanınızın profilini çıkarırken
--raw bayrağını aşağıdaki gibi kullanın:
firebase database:profile --raw
Ham çıktı ayrıca,
userAgent dizeleri ve IP adresleri gibi her işlem için istemci bilgilerini içerir. Firebase Gerçek Zamanlı Veritabanı İşlem Türlerinde Firebase Gerçek Zamanlı Veritabanınızda profillenen farklı işlemler hakkında daha fazla bilgi edinin.
Profil oluşturma aracı: Faturalandırma aracı değil
Bant genişliği maliyetini tahmin etmek için profil oluşturucu aracını kullanmayın. Profil oluşturucu aracı, faturalandırmayı tahmin etmek için değil, işlemleri izlemenize ve sorunları gidermenize yardımcı olmak için veritabanınızın performansının genel bir resmini vermeyi amaçlamaktadır. Ağ trafiğini hesaba katmaz, yalnızca yanıtlarda gönderilen uygulama verilerinin bir tahminini kaydeder.
Aşağıdakiler, Firebase tarafından faturalandırılan ve veritabanı profilinizde kapsanmayan bazı yaygın ağ trafiği örnekleridir:
- Protokol ek yükü: Bir oturum oluşturmak ve sürdürmek için sunucu ve istemciler arasında bazı ek trafik gereklidir. 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 üstbilgi ek yükü. Her bağlantı kurulduğunda, bu ek yük, herhangi bir 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, 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 ve giden her mesajda TLS kayıt başlıkları için yaklaşık 40 milyar'dır. Çoğu uygulama için bu, faturanızın küçük bir yüzdesidir. Ancak, özel durumunuz çok sayıda SSL anlaşması gerektiriyorsa, bu büyük bir yüzde olabilir. Örneğin, TLS oturum biletlerini desteklemeyen cihazlar, çok sayıda SSL bağlantısı anlaşması gerektirebilir.
Faturanızı anlama ve tahmin etme hakkında daha fazla bilgi edinin.