قم بتكوين قاعدة البيانات الخاصة بك

يمكنك قياس أداء "قاعدة بيانات Firebase في الوقت الفعلي" باستخدام أداة محلّل قاعدة البيانات المضمّنة في واجهة سطر الأوامر في Firebase. تسجل أداة المحلل كل الأنشطة في قاعدة البيانات لديك خلال فترة زمنية معينة، ثم تنشئ تقريرًا تفصيليًا. استخدم التقرير المفصل لاستكشاف المشكلات المتعلقة بأداء قاعدة البيانات لديك وتحديد مناطق المشكلات وتقليل الاستعلامات غير المفهرسة.

إنشاء ملف شخصي

  1. قبل البدء في تحليل قاعدة بيانات Firebase في الوقت الفعلي، احرص على استخدام أحدث إصدار من واجهة سطر الأوامر في Firebase وأنّك قد أعددته لقاعدة البيانات والمشروع الذي تريد إنشاء ملف شخصي له. لاحظ أنه يجب أن تكون محررًا أو مالكًا لهذا المشروع لإنشاء ملف تعريف.

  2. ابدأ تحليل قاعدة البيانات بالأمر التالي:

    firebase database:profile
    يعرض المحلل رسالة حالة أثناء تسجيل العمليات من قاعدة البيانات وإنشاء الملف الشخصي.

  3. اضغط على Enter لإكمال الملف الشخصي وعرض النتائج.

تفسير النتائج

تعمل أداة المحلل على تجميع البيانات التي تم جمعها حول عمليات قاعدة البيانات وعرض النتائج في ثلاث فئات أساسية: السرعة ومعدل نقل البيانات وطلبات البحث غير المفهرسة.

السرعة

يقيس "تقرير السرعة" وقت استجابة الخادم (بالمللي ثانية) لكل نوع من أنواع العمليات. ومع ذلك، فإنّ السرعة التي يتم قياسها في "تقرير السرعة" قد لا تعكس فعليًا تجربة المستخدمين النهائيين. يمكن للعوامل المختلفة، بما في ذلك ظروف الشبكة، إضافة وقت استجابة من جانب العميل.

يتضمن "تقرير السرعة" الخصائص التالية:

  • المسار: المسار في قاعدة البيانات الذي حدثت فيه العمليات. في حال وجود أكثر من 25 عُقدة فرعية، تصغّر أداة المحلِّل هذه العُقد في مسار رئيسي وتضيف علامة $wildcard. قد يظهر لك الدليل الجذري لقاعدة البيانات في التقرير، ممثلًا بشرطة مائلة للأمام /.
  • العدد: عدد العمليات التي حدثت في المسار المحدّد.
  • متوسط سرعة التنفيذ: متوسط الوقت الذي يستغرقه الخادم لتنفيذ منطق الأعمال المطلوب للتعامل مع نوع العملية المعيّن في ذلك المسار. يبدأ الفاصل الزمني الذي يتم قياسه هنا بعد ذلك، ويتم قياسه باستخدام "متوسط مدة الانتظار" الموضّح أدناه.
  • متوسط مدة الانتظار: متوسط الوقت الذي استغرقته الطلبات في قائمة الانتظار قبل تنفيذها. وهذا التأخير شائع لجميع الطلبات التي يبدأها العميل. ويكون إجمالي وقت استجابة الطلب من جهة الخادم هو مجموع الوقت المعلّق وسرعة التنفيذ لهذا الطلب تقريبًا.
  • تم رفض الإذن: عدد العمليات في المسار المعينة والتي تم حظرها بواسطة قواعد قاعدة بيانات Firebase على قاعدة البيانات.
تقرير السرعة حسب نوع العملية
قراءة سرعة التنفيذ يشير ذلك المصطلح إلى وقت استجابة الخادم لطلبات العميل لقراءة البيانات من قاعدة البيانات. يتفاوت وقت تنفيذ القراءة بشكل عام مع مقدار البيانات التي تتم قراءتها، ولكن حتى بعض القراءات الصغيرة قد تتأخر أيضًا بسبب الجلب المسبق لذاكرة التخزين المؤقت.
كتابة سرعة التنفيذ وقت استجابة الخادم لطلبات العميل لكتابة البيانات في قاعدة البيانات. اكتب مقاييس وقت التنفيذ مع كمية البيانات التي تتم كتابتها.
سرعة تنفيذ الربط وقت استجابة الخادم للطلبات التي يتم إنشاؤها لعملاء قاعدة البيانات. يهيمن وقت الاستجابة لطلبات الاتصال على عمليات المحاسبة من جهة الخادم في الذاكرة ذات الصلة بإدارة الاتصال.
سرعة تنفيذ البث

يشير ذلك المصطلح إلى مقدار الوقت الذي يستغرقه الخادم في توزيع البيانات على العملاء الذين يستمعون إلى المسار المحدّد لتلقّي التحديثات في الوقت الفعلي.

تجمّع الخاصية Count في "تقرير سرعة البث" عدد عمليات البث التي حدثت، وليس عدد العملاء الذين تلقّوا المعلومات. على سبيل المثال، إذا كان 10 عملاء يستمعون إلى مسار معين، وبث الخادم تحديثًا لجميع العملاء العشرة، فإن عدد عمليات البث يعكس عملية بث واحدة فقط، حتى إذا استلم 10 عملاء البيانات.

لا يتم تضمين خاصية تم رفض الإذن في تقرير سرعة البث.

النطاق الترددي

يوفر تقرير النطاق الترددي رؤية حول مقدار البيانات التي تستهلكها قاعدة البيانات عبر العمليات الواردة والصادرة. يجب ألا تستخدم تقرير النطاق الترددي لتقدير الفوترة، ومع ذلك، لأنه لا يتضمن معدل نقل البيانات المستخدم لعمليات أخرى، مثل تحليل قاعدة البيانات لديك. يقدر تقرير النطاق الترددي بشكل تقريبي حجم حمولة البيانات التي تستهلكها عمليات القراءة والكتابة والبث من وإلى قاعدة البيانات لديك. فهو أداة تقيس الأداء وليس أداة توقع الفوترة.

يتضمن تقرير معدل نقل البيانات الخصائص التالية:

  • المسار: المسار في قاعدة البيانات الذي حدثت فيه العمليات. إذا كان هناك أكثر من 25 عقدة فرعية، تقوم أداة المحلل بتصغيرها في مسار رئيسي.

  • الإجمالي: إجمالي وحدات البايت الصادرة أو الواردة المستخدمة في كل العمليات في المسار المحدّد.

  • العدد: عدد العمليات التي حدثت في المسار المحدّد.

  • المتوسط: متوسط عدد وحدات البايت التي تم تنزيلها أو تحميلها في العمليات في المسار المعني (وحدات البايت/الكتابة أو بايت/قراءة).

تقرير معدّل نقل البيانات
وحدات بايت التي تم تنزيلها البيانات التي يتم استهلاكها من خلال عمليات القراءة والبث والمُرسَلة عبر حِزم تطوير البرامج (SDK) الخاصة بالعميل وREST API
وحدات البايت التي تم تحميلها يشير ذلك المصطلح إلى البيانات التي يتم استهلاكها من خلال طلبات الكتابة الواردة إلى خادم قاعدة البيانات. تظهر عمليات الحذف كعمليات كتابة بقيمة 0 بايت ضمن الوارد.

طلبات البحث غير المفهرسة

قد تكون طلبات البحث غير المفهرسة مكلفة، لأنّ العملاء ينزّلون جميع البيانات في موقع جغرافي معيّن ثم يجرون طلبات بحث فيه. يستهلك ذلك معدل نقل بيانات أكثر من اللازم. حل أكبر عدد ممكن من طلبات البحث غير المفهرسة لتحسين أداء قاعدة بياناتك.

يعرض تقرير "طلبات البحث غير المفهرَسة" السمات التالية:

  • المسار: المسار في قاعدة البيانات الذي حدثت فيه طلبات البحث غير المفهرسة.
  • الفهرس: القاعدة التي يجب إضافتها لحل طلبات البحث غير المفهرسة. يمكنك الاطّلاع على مزيد من المعلومات حول الفهرسة في صفحة فهرسة بياناتك.
  • العدد: عدد طلبات البحث غير المفهرَسة التي حدثت في المسار المحدّد.

تحديد مواصفات المحتوى المتقدّم

للاطّلاع على جميع العمليات التي تعالجها قاعدة بياناتك، استخدِم العلامة --raw عند إنشاء ملف شخصي لقاعدة البيانات على النحو التالي:

firebase database:profile --raw

تتضمن النتائج الأولية أيضًا معلومات العميل لكل عملية، مثل سلاسل userAgent وعناوين IP. يمكنك الاطّلاع على مزيد من المعلومات حول العمليات المختلفة الموضّحة في "قاعدة بيانات Firebase في الوقت الفعلي" ضمن أنواع عمليات قاعدة بيانات Firebase في الوقت الفعلي.

أداة المحلل: ليست أداة فوترة

لا تستخدم أداة المحلِّل لتقدير تكلفة معدّل نقل البيانات. الغرض من أداة المحلل هو إعطائك صورة شاملة عن أداء قاعدة البيانات، لمساعدتك في مراقبة العمليات واستكشاف المشكلات وإصلاحها، وليس تقدير الفواتير. ولا يأخذ في الاعتبار حركة بيانات الشبكة، بل يسجّل فقط تقديرًا لبيانات التطبيق المرسلة في الاستجابات.

في ما يلي بعض الأمثلة الشائعة على حركة بيانات الشبكة التي تتم فوترتها من خلال Firebase غير المشمولة في الملف الشخصي لقاعدة البيانات:

  • أعباء البروتوكول العامة: من الضروري بعض الزيارات الإضافية بين الخادم والعملاء لإنشاء جلسة وصيانتها. واستنادًا إلى البروتوكول الأساسي، قد تتضمن حركة البيانات هذه: مقدار زائد من بروتوكول الوقت الفعلي لقاعدة بيانات Firebase في الوقت الفعلي، وأعباء WebSocket، ومقدار رأس HTTP. في كل مرة يتم فيها إنشاء اتصال، يساهم هذا النفقات العامة، بالإضافة إلى أي نفقة عامة لتشفير طبقة المقابس الآمنة، في تكاليف الاتصال. على الرغم من أن هذا في العادة لا يكون قدرًا كبيرًا من معدل نقل البيانات، إلا أنه قد يكون مهمًا إذا كانت حمولاتك صغيرة أو إذا أجريت اتصالات متكررة وقصيرة.
  • التكلفة العامة لتشفير طبقة المقابس الآمنة: هناك تكلفة مرتبطة بالنفقات العامة لتشفير طبقة المقابس الآمنة (SSL) اللازمة للاتصالات الآمنة. وفي المتوسط، تبلغ هذه التكلفة حوالي 3.5 كيلوبايت لعملية تأكيد الاتصال الأولية و40 مليارًا تقريبًا لرؤوس سجلات بروتوكول أمان طبقة النقل (TLS) في كل رسالة صادرة. في معظم التطبيقات، تمثل هذه نسبة صغيرة من فاتورتك. ومع ذلك، قد يصبح هذا نسبة كبيرة إذا كانت الحالة المحددة تتطلب الكثير من عمليات تأكيد اتصال طبقة المقابس الآمنة (SSL). على سبيل المثال، قد تتطلب الأجهزة التي لا تدعم تذاكر جلسة بروتوكول أمان طبقة النقل عددًا كبيرًا من عمليات تأكيد الاتصال لاتصال طبقة المقابس الآمنة.

مزيد من المعلومات حول فهم فاتورتك وتقديرها