يمكنك قياس أداء Firebase Realtime Database باستخدام أداة تحليل أداء قاعدة البيانات المضمّنة في Firebase واجهة سطر الأوامر. تقوم أداة المحلل بتسجيل جميع الأنشطة في قاعدة البيانات الخاصة بك خلال فترة زمنية معينة، ثم تقوم بإنشاء تقرير تفصيلي. استخدِم التقرير التفصيلي لتحديد المشاكل المتعلّقة بأداء قاعدة البيانات وحلّها، ورصد الجوانب التي تواجه مشاكل، والحدّ من طلبات البحث غير المفهرَسة.
إنشاء ملف شخصي
قبل بدء إنشاء ملف شخصي لـ Firebase Realtime Database، تأكَّد من استخدام أحدث إصدار من واجهة سطر أوامر Firebase ومن أنّك تمهّدت لاستخدامها مع قاعدة البيانات والمشروع اللذين تريد إنشاء ملف شخصي لهما. يُرجى العلم أنّه يجب أن تكون محرِّرًا أو مالكًا لهذا المشروع لإنشاء ملف تجاري له.
ابدأ بإنشاء ملف تعريف لقاعدة بياناتك باستخدام الأمر التالي:
يعرض أداة تحليل الأداء رسالة حالة أثناء تسجيل العمليات من قاعدة البيانات وإنشاء الملف الشخصي.firebase database:profile
اضغط على Enter لإكمال الملف الشخصي وعرض النتائج.
تفسير النتائج
تجمع أداة تحليل الأداء البيانات التي يتم جمعها عن عمليات قاعدة بياناتك، وتعرض النتائج في ثلاث فئات أساسية: السرعة، النطاق الترددي، وطلبات البحث غير المفهرَسة.
السرعة
يقيس تقرير "سرعة الأداء" وقت استجابة الخادم (بالمللي ثانية) لكل نوع من أنواع العمليات. ومع ذلك، قد لا تعكس السرعة المقاسة في "تقرير السرعة" السرعة التي يشعر بها المستخدمون النهائيون. يمكن أن تؤدي عوامل مختلفة، بما في ذلك ظروف الشبكة، إلى زيادة وقت الاستجابة من جهة العميل.
يتضمّن تقرير "السرعة" السمات التالية:
- المسار: المسار في قاعدة بياناتك الذي حدثت فيه العمليات إذا كان هناك
أكثر من 25 عقدة فرعية، تُدمج أداة أداة تحليل الأداء هذه العقد في
مسار رئيسي وتضيف علامة
$wildcard
. قد يظهر لك الدليل الجذر لقاعدة بياناتك في التقرير، ويُمثَّل بشرطة مائلة للأمام/
. - العدد: عدد العمليات التي حدثت في المسار المحدّد
- متوسط سرعة التنفيذ: يشير ذلك إلى متوسط الوقت الذي يستغرقه الخادم لتنفيذ منطق الأعمال اللازم للتعامل مع نوع العملية المعيّن في ذلك المسار. تبدأ الفترة الزمنية التي يتم قياسها هنا بعد الفترة التي يتم قياسها من خلال "متوسط الوقت في انتظار المراجعة" الموضّح أدناه.
- متوسط الوقت في انتظار المراجعة: متوسّط الوقت الذي تقضيه الطلبات في انتظار التنفيذ ويُعدّ هذا التأخير شائعًا في جميع الطلبات التي يبدأها العميل. إجمالي وقت استجابة الطلب من جهة الخادم هو تقريبًا مجموع الوقت الذي يقضيه الطلب في انتظار المعالجة وسرعة التنفيذ.
- تم رفض الإذن: عدد العمليات في المسار المحدّد التي تم حظرها من خلال قواعد قاعدة بيانات Firebase على قاعدة البيانات.
تقرير السرعة حسب نوع العملية | |
---|---|
سرعة تنفيذ القراءة | مدة استجابة الخادم لطلبات العميل بقراءة البيانات من قاعدة البيانات. يتناسب وقت تنفيذ القراءة بشكل عام مع كمية البيانات التي تتم قراءتها، ولكن قد يتأخّر أيضًا تنفيذ بعض عمليات القراءة الصغيرة بسبب ميزة prefetching (التحميل المُسبَق) في ذاكرة التخزين المؤقت. |
سرعة تنفيذ الكتابة | مدة استجابة الخادم لطلبات العميل بكتابة البيانات في قاعدة البيانات. يتناسب وقت تنفيذ الكتابة مع كمية البيانات التي يتم كتابتها. |
سرعة تنفيذ عملية الربط | مدة استجابة الخادم لطلبات إنشاء اتصالات مع عملاء قاعدة البيانات. يتم التحكم في وقت الاستجابة لطلبات الاتصال من خلال عمليات التدقيق في الذاكرة من جانب الخادم والمتعلقة بإدارة الاتصال. |
سرعة تنفيذ البث | المدة التي يستغرقها الخادم لتوزيع البيانات على العملاء الاستماع إلى المسار المحدّد للحصول على آخر المعلومات في الوقت الفعلي تجمع السمة العدد في تقرير "سرعة البث" عدد عمليات البث التي حدثت، وليس عدد العملاء الذين تلقّوا المعلومات. على سبيل المثال، إذا كان 10 عملاء يستمعون إلى مسار معيّن، وبث الخادم تحديثًا لجميع العملاء العشرة، يعكس عدد عمليات البث عملية بث واحدة فقط، على الرغم من استلام 10 عملاء البيانات. لا يتم تضمين السمة الوصول مرفوض في تقرير "سرعة البث". |
سعة النطاق
يقدّم تقرير "سعة النطاق" إحصاءات عن مقدار البيانات التي تستهلكها قاعدة بياناتك على مستوى العمليات الواردة والصادرة. ومع ذلك، يجب عدم استخدام تقرير "معدل نقل البيانات" لتقدير الفوترة، لأنّه لا يتضمّن معدل نقل البيانات المستخدَم في عمليات أخرى، مثل إنشاء ملف شخصي لقاعدة بياناتك. يقدّر تقرير "معدل نقل البيانات" تقريبًا حجم الحمولة ل data التي تستهلكها عمليات القراءة والكتابة والبث من وإلى قاعدة بياناتك. وهي أداة تقيس الأداء، وليس أداة توقّع الفوترة.
يتضمّن تقرير "سعة النطاق" السمات التالية:
المسار: المسار في قاعدة بياناتك الذي حدثت فيه العمليات إذا كان هناك أكثر من 25 عُقدة فرعية، تعمل أداة المُحلِّل على تصغيرها إلى مسار رئيسي.
الإجمالي: إجمالي وحدات البايت الصادرة أو الواردة المستخدَمة في جميع العمليات في المسار المحدّد.
العدد: عدد العمليات التي حدثت في المسار المحدّد
متوسط: متوسط عدد وحدات البايت التي تم تنزيلها أو تحميلها في جميع العمليات في المسار المحدّد (بايت/الكتابة أو بايت/القراءة).
تقرير "معدّل نقل البيانات" | |
---|---|
وحدات البايت التي تم تنزيلها | يشير ذلك المصطلح إلى البيانات المستهلكة من خلال عمليات القراءة والبث المُرسَلة من خلال حِزم تطوير البرامج (SDK) للعميل وREST API. |
وحدات البايت المحمَّلة | البيانات المستخدَمة من خلال طلبات الكتابة الواردة إلى خادم قاعدة البيانات تظهر عمليات الحذف على أنّها عمليات كتابة بحجم 0 بايت ضمن المحتوى الوارد. |
طلبات البحث غير المفهرَسة
يمكن أن تكون طلبات البحث غير المفهرَسة باهظة التكلفة، لأنّ العملاء ينزّلون كل البيانات في أحد المواقع الجغرافية ثم يجرون طلبات بحث عليها. يستهلك هذا معدل نقل بيانات أكثر من اللازم. حلّ أكبر عدد ممكن من طلبات البحث غير المفهرَسة لتحسين أداء قاعدة البيانات
يعرض تقرير "طلبات البحث غير المفهرَسة" السمات التالية:
- المسار: المسار في قاعدة بياناتك الذي حدثت فيه طلبات البحث غير المفهرَسة.
- الفهرس: القاعدة التي يجب إضافتها لحلّ المشاكل المتعلّقة بالطلبات غير المفهرَسة. يمكنك الاطّلاع على المزيد من المعلومات حول الفهرسة في صفحة فهرسة بياناتك.
- العدد: عدد طلبات البحث غير المفهرَسة التي حدثت في المسار المحدّد.
إنشاء ملفات شخصية متقدمة
للاطّلاع على جميع العمليات التي تعالجها قاعدة البيانات، استخدِم العلامة --raw
عند إنشاء ملف شخصي لقاعدة البيانات، وذلك على النحو التالي:
firebase database:profile --raw
تتضمن النتيجة الأولية أيضًا معلومات العميل لكل عملية، مثل سلاسل userAgent
وعناوين IP. اطّلِع على مزيد من المعلومات عن العمليات المختلفة
التي تمّ وضع ملفّ شخصي لها في Firebase Realtime Database ضمن أنواع عمليات Firebase Realtime Database.
أداة إنشاء الملفات الشخصية: ليست أداة فوترة
لا تستخدِم أداة تحليل الأداء لتقدير تكلفة النطاق الترددي. تهدف أداة تحليل الأداء إلى تقديم صورة عامة عن أداء قاعدة بياناتك، لمساعدتك في مراقبة العمليات وتحديد المشاكل وحلّها، وليس لتقدير الفوترة. ولا يأخذ في الاعتبار عدد الزيارات إلى الشبكة، بل يسجّل فقط تقديرًا ل بيانات التطبيق المُرسَلة في الردود.
في ما يلي بعض الأمثلة الشائعة على عدد زيارات الشبكة التي تحصّل Firebase رسومًا مقابلها ولا يتم تضمينها في ملف تعريف قاعدة بياناتك:
- التكلفة الإضافية للبروتوكول: إنّ بعض الزيارات الإضافية بين الخادم والعملاء ضرورية لإنشاء جلسة والحفاظ عليها. استنادًا إلى الprotocolly الأساسي، قد تتضمّن هذه الزيارات: النفقات العامة لprotocolly في الوقت الفعلي في قاعدة بيانات Firebase في الوقت الفعلي، والنفقات العامة لبروتوكول WebSocket، والنفقات العامة لعنوان HTTP. في كل مرة يتم فيها إتمام اتصال، تساهم هذه التكاليف العامة، بالإضافة إلى أي تكاليف عامة لتشفير بروتوكول SSL، في تكاليف الاتصال. على الرغم من أنّ هذا لا يمثّل عادةً مقدارًا كبيرًا من معدل نقل البيانات، إلا أنّه يمكن أن يكون كبيرًا إذا كانت حِزم البيانات صغيرة أو إذا كنت تُجري عمليات اتصال قصيرة ومتكرّرة.
- التكلفة الإضافية لتشفير طبقة المقابس الآمنة: هناك تكلفة مرتبطة بالتكلفة الإضافية لتشفير طبقة المقابس الآمنة اللازمة للاتصالات الآمنة. وفي المتوسط، تبلغ هذه التكلفة حوالي 3.5 كيلوبايت لعملية تأكيد الاتصال الأولية وحوالي 40 مليار لرؤوس سجلات بروتوكول أمان طبقة النقل (TLS) في كل رسالة صادرة. بالنسبة إلى معظم التطبيقات، هذه نسبة صغيرة من فاتورتك. ومع ذلك، يمكن أن تصبح هذه النسبة كبيرة إذا كانت حالتك المحدّدة تتطلّب الكثير من عمليات مصافحة طبقة المقابس الآمنة. على سبيل المثال، قد تتطلّب الأجهزة التي لا تتوافق مع تذاكر جلسات TLS أعدادًا كبيرة من عمليات تأكيد اتصال بروتوكول SSL.
اطّلِع على مزيد من المعلومات عن فهم فاتورتك وتقديرها.