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

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

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

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

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

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

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

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

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

السرعة

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

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

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

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

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

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

معدّل نقل البيانات

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

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

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

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

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

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

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

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

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

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

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

إنشاء الملفات التعريفية المتقدّمة

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

firebase database:profile --raw

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

أداة إنشاء الملفات الشخصية: ليست أداة فوترة

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

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

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

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