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

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

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

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

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

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

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

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

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

السرعة

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

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

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

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

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

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

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

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

يتضمن تقرير معدل نقل البيانات السمات التالية:

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

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

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

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

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

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

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

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

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

إنشاء ملفات شخصية متقدمة

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

firebase database:profile --raw

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

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

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

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

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

يمكنك قراءة المزيد عن فهم فاتورتك وتقديرها.