Firebase CLI'de yerleşik olarak bulunan veritabanı profil oluşturucu aracıyla Firebase Gerçek Zamanlı Veritabanınızın performansını ölçün. Profil oluşturucu aracı, veritabanınızdaki tüm etkinliği belirli bir süre boyunca 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ştur
Firebase Gerçek Zamanlı Veritabanınızın profilini oluşturmaya 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 oluşturmaya başlayın:
firebase database:profile
Profil oluşturucu, veritabanınızdaki 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 tuşuna basın.
Sonuçlarınızı yorumlayın
Profil oluşturucu aracı, veritabanınızın işlemleri hakkında topladığı verileri toplar ve sonuçları üç ana kategoride görüntüler: 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 Raporunda ölçülen hız, son kullanıcıların hız deneyimini yansıtmayabilir. Ağ koşulları da dahil olmak üzere farklı faktörler, istemci tarafında gecikme süresi 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şturucu aracı bunları bir üst yola daraltır ve bir
$wildcard
karakter işaretçisi ekler. Raporda, eğik çizgi/
ile temsil edilen veritabanınızın kök dizinini görebilirsiniz. - Sayı: Verilen yolda gerçekleşen işlemlerin sayısı.
- Ortalama Yürütme Hızı: Sunucunun o 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çülenden sonra başlar.
- Ortalama Bekleme Süresi: İsteklerin yürütülmeden önce kuyruğa alınması için harcanan ortalama süre. Bu gecikme, istemci tarafından başlatılan tüm isteklerde ortaktır. Toplam sunucu tarafı istek gecikmesi, kabaca bu isteğin bekleme süresi ve yürütme hızının toplamıdır.
- İzin Reddedildi: Veritabanınızda Firebase Veritabanı Kuralları tarafından engellenen, belirtilen yoldaki işlemlerin sayısı.
İşlem Türüne Göre Hız Raporu | |
---|---|
Yürütme Hızını Oku | Veritabanından veri okumak isteyen istemci istekleri için sunucu yanıt süresi. Okuma yürütme süresi genellikle okunmakta olan veri miktarına göre ölçeklenir, ancak bazı küçük okumalar bile önbellek önbelleği nedeniyle geciktirilebilir. |
Yürütme Hızını Yaz | Veritabanına veri yazmak isteyen istemci istekleri için sunucu yanıt süresi. Yazılmakta olan veri miktarı ile yürütme zaman ölçeklerini yazın. | Yürütme Hızını Bağlayın | Veritabanı istemcilerine kurulacak istekler için sunucu yanıt süresi. Bağlantı istekleri için gecikme, bağlantı yönetimiyle ilgili bellek içi sunucu tarafı defter tutmanın hakimiyeti altındadır. |
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, bilgiyi 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 tamamına bir güncelleme yayınlıyorsa, yayın sayısı, verileri 10 istemci almış olsa bile yalnızca 1 yayını yansıtır. İzin Reddedildi özelliği, Yayın Hızı raporuna dahil değildir. |
Bant genişliği
Bant Genişliği Raporu, veritabanınızın gelen ve giden işlemlerde ne kadar veri tükettiği hakkında 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, veritabanınıza gelen ve veritabanınızdan okuma, yazma ve yayınlama işlemleri tarafından tüketilen verilerin yük boyutunu kabaca tahmin eder. Faturalamayı tahmin eden değil, performansı ölçen bir araçtı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şturucu aracı bunları bir üst yola daraltır.
Toplam: Verilen yoldaki tüm işlemlerde kullanılan toplam giden veya gelen bayt.
Sayı: Verilen yolda gerçekleşen işlemlerin sayısı.
Ortalama: Verilen 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 yoluyla tüketilen veriler. Silmeler, gelen altında 0 bayt ile yazma olarak görünür. |
Dizinlenmemiş Sorgular
Dizinlenmemiş sorgular pahalı olabilir, çünkü istemciler bir konumdaki tüm verileri indirir ve ardından bu konum üzerinde sorgular gerçekleştirir. Bu, gereğinden fazla bant genişliği kullanır. Veritabanınızın performansını optimize etmek için mümkün olduğu kadar çok dizine eklenmemiş sorguyu çözün.
Dizinlenmemiş Sorgular raporu aşağıdaki özellikleri görüntüler:
- Yol: Dizinlenmemiş sorguların oluştuğu veritabanınızdaki yol.
- Dizin: Dizinlenmemiş sorguları çözmek için eklemeniz gereken kural. Verilerinizi dizine ekleme hakkında daha fazla bilgi edinin.
- Sayı: 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 oluştururken --raw
işaretini aşağıdaki gibi kullanın:
firebase database:profile --raw
Ham çıktı ayrıca her işlem için userAgent
dizeleri ve IP adresleri gibi istemci bilgilerini içerir. Firebase Gerçek Zamanlı Veritabanı İşlem Türlerinde Firebase Gerçek Zamanlı Veritabanınızda profili oluşturulan farklı işlemler hakkında daha fazla bilgi edinin.
Profil oluşturucu aracı: Faturalandırma aracı değil
Bant genişliği maliyetini tahmin etmek için profil oluşturma aracını kullanmayın. Profil oluşturucu aracının amacı, faturalandırmayı tahmin etmek değil, işlemleri izlemenize ve sorunları gidermenize yardımcı olmak için veritabanınızın performansının genel bir resmini vermektir. Ağ trafiğini hesaba katmaz, yalnızca yanıtlarda gönderilen uygulama verilerinin bir tahminini kaydeder.
Aşağıda, Firebase tarafından faturalandırılan ve veritabanı profilinizde yer almayan bazı yaygın ağ trafiği örnekleri verilmiştir:
- Protokol ek yükü: Bir oturum oluşturmak ve sürdürmek için sunucu ve istemciler arasında bir miktar ek trafik gereklidir. Altta yatan 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, herhangi bir SSL şifreleme ek yüküyle birleştiğinde, bağlantı maliyetlerine katkıda bulunur. Bu genellikle büyük miktarda bir bant genişliği olmasa da, yükleriniz küçükse veya sık, kısa bağlantılar kuruyorsanız önemli olabilir.
- SSL şifreleme ek yükü: Güvenli bağlantılar için gerekli olan SSL şifreleme ek yükünün bir maliyeti vardır. Ortalama olarak bu maliyet, ilk el sıkışma için yaklaşık 3,5 KB ve giden her mesajdaki TLS kayıt başlıkları için yaklaşık 40 milyardır. Çoğu uygulama için bu, faturanızın küçük bir yüzdesidir. Ancak, özel durumunuz çok fazla SSL el sıkışması gerektiriyorsa, bu büyük bir yüzde olabilir. Ö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 fazlasını okuyun.