ملف تعريف قاعدة البيانات

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

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

  1. قبل بدء إنشاء ملف شخصي لـ Firebase Realtime Database، تأكَّد من استخدام أحدث إصدار من Firebase CLI ومن أنّك تمهّدت استخدامه مع قاعدة البيانات والمشروع اللذين تريد إنشاء ملف شخصي لهما. يُرجى العلم أنّه يجب أن تكون محرِّرًا أو مالكًا لهذا المشروع لإنشاء ملف تجاري له.

  2. ابدأ بإنشاء ملف تعريف لقاعدة بياناتك باستخدام الأمر التالي:

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

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

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

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

السرعة

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

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

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

المدة التي يستغرقها الخادم لتوزيع البيانات على العملاء الاستماع إلى المسار المحدّد للحصول على آخر المعلومات في الوقت الفعلي

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

لا يتم تضمين السمة Permission Denied (تم رفض الإذن) في تقرير "سرعة البث".

سعة النطاق

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

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

  • المسار: المسار في قاعدة بياناتك الذي حدثت فيه العمليات إذا كان هناك أكثر من 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.

اطّلِع على مزيد من المعلومات عن فهم فاتورتك وتقديرها.