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

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

إنشاء ملف تعريف

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

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

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

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

تفسير نتائجك

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

سرعة

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

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

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

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

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

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

عرض النطاق

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

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

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

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

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

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

تقرير عرض النطاق الترددي
البايتات التي تم تنزيلها البيانات المستهلكة من خلال عمليات القراءة والبث المرسلة عبر SDKs للعميل وREST API.
البايتات التي تم تحميلها البيانات المستهلكة من خلال طلبات الكتابة الواردة إلى خادم قاعدة البيانات. تظهر عمليات الحذف أثناء الكتابة مع 0 بايت ضمن الوارد.

الاستعلامات غير المفهرسة

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

يعرض تقرير الاستعلامات غير المفهرسة الخصائص التالية:

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

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

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

firebase database:profile --raw

يتضمن الإخراج الأولي أيضًا معلومات العميل لكل عملية، مثل سلاسل userAgent وعناوين IP. تعرف على المزيد حول العمليات المختلفة التي تم تحديدها في قاعدة بيانات Firebase Realtime في أنواع عمليات قاعدة بيانات Firebase Realtime .

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

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

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

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

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