يمكنك قياس أداء Firebase Realtime Database باستخدام أداة تحليل أداء قاعدة البيانات المضمّنة في Firebase CLI. تسجّل أداة التحليل جميع الأنشطة في قاعدة البيانات خلال فترة زمنية معيّنة، ثم تنشئ تقريرًا مفصلاً. استخدِم التقرير التفصيلي لتحديد المشاكل وحلّها في ما يتعلّق بأداء قاعدة البيانات، ورصد الجوانب التي تتضمّن مشاكل، وتقليل طلبات البحث غير المفهرَسة.
إنشاء ملف شخصي
قبل البدء في تحليل أداء Firebase Realtime Database، تأكَّد من استخدامك أحدث إصدار من Firebase CLI ومن إعداده لقاعدة البيانات والمشروع اللذين تريد تحليل أدائهما. يُرجى العِلم أنّه يجب أن تكون محرِّرًا أو مالكًا لهذا المشروع لإنشاء ملف شخصي.
ابدأ في تحليل قاعدة البيانات باستخدام الأمر التالي:
يعرض محلّل الأداء رسالة حالة أثناء تسجيل العمليات من قاعدة البيانات وإنشاء الملف الشخصي.firebase database:profile
اضغط على مفتاح Enter لإكمال الملف الشخصي وعرض النتائج.
تفسير النتائج
تجمع أداة التحليل البيانات التي تم جمعها حول عمليات قاعدة البيانات وتعرض النتائج في ثلاث فئات أساسية: السرعة والنطاق الترددي وطلبات البحث غير المفهرَسة.
السرعة
يقيس تقرير "السرعة" وقت استجابة الخادم (بالمللي ثانية) لكل نوع من أنواع العمليات. ومع ذلك، قد لا تعكس السرعة التي تم قياسها في "تقرير السرعة" السرعة التي يختبرها المستخدمون النهائيون. يمكن أن تؤدي عوامل مختلفة، بما في ذلك حالة الشبكة، إلى زيادة وقت الاستجابة على جانب العميل.
يتضمّن "تقرير السرعة" السمات التالية:
- المسار: المسار في قاعدة البيانات حيث تم تنفيذ العمليات. إذا كان هناك أكثر من 25 عقدة فرعية، ستدمج أداة التحليل هذه العُقد في مسار رئيسي وتضيف علامة
$wildcard. قد يظهر لك الدليل الجذري لقاعدة بياناتك في التقرير، ويتم تمثيله بشرطة مائلة للأمام/. - العدد: عدد العمليات التي حدثت في المسار المحدّد.
- متوسط سرعة التنفيذ: متوسط الوقت الذي يستغرقه الخادم لتنفيذ منطق النشاط التجاري اللازم لمعالجة نوع العملية المحدّد في هذا المسار. يبدأ الفاصل الزمني الذي يتم قياسه هنا بعد الفاصل الزمني الذي يتم قياسه من خلال "متوسط وقت الانتظار" الموضّح أدناه.
- متوسّط وقت الانتظار: متوسّط الوقت الذي تقضيه الطلبات في قائمة الانتظار قبل تنفيذها وهذا التأخير شائع في جميع الطلبات التي يبدأها العميل. ويكون إجمالي وقت استجابة الطلب من جهة الخادم هو تقريبًا مجموع وقت انتظار الطلب وسرعة تنفيذه.
- تم رفض الإذن: عدد العمليات في المسار المحدّد التي تم حظرها من خلال قواعد قاعدة بيانات Firebase في قاعدة بياناتك
| تقرير السرعة حسب نوع العملية | |
|---|---|
| قراءة سرعة التنفيذ | وقت استجابة الخادم لطلبات العميل لقراءة البيانات من قاعدة البيانات. يزداد وقت تنفيذ القراءة بشكل عام مع زيادة كمية البيانات التي تتم قراءتها، ولكن قد تتأخر بعض عمليات القراءة الصغيرة أيضًا بسبب الجلب المُسبق لذاكرة التخزين المؤقت. |
| سرعة تنفيذ عمليات الكتابة | وقت استجابة الخادم لطلبات العميل لكتابة البيانات في قاعدة البيانات. يتناسب وقت تنفيذ الكتابة مع كمية البيانات التي تتم كتابتها. |
| سرعة تنفيذ Connect | يشير ذلك المصطلح إلى مدة استجابة الخادم للطلبات التي يتم إنشاؤها لعملاء قاعدة البيانات. تتأثر مدة الاستجابة لطلبات الاتصال بشكل كبير بعمليات إدارة السجلات في الذاكرة على جهة الخادم، والتي تتعلق بإدارة الاتصالات. |
| سرعة تنفيذ البث | مقدار الوقت الذي يستغرقه الخادم لتوزيع البيانات على العملاء الذين يستمعون إلى المسار المحدّد للحصول على التحديثات في الوقت الفعلي تجمع السمة Count في تقرير سرعة البث عدد عمليات البث التي حدثت، وليس عدد العملاء الذين تلقّوا المعلومات. على سبيل المثال، إذا كان هناك 10 عملاء يستمعون إلى مسار معيّن، وبثّ الخادم تعديلاً لجميع العملاء العشرة، سيعكس عدد عمليات البث عملية بث واحدة فقط، على الرغم من أنّ 10 عملاء تلقّوا البيانات. لا يتم تضمين السمة تم رفض الإذن في تقرير "سرعة البث". |
معدّل نقل البيانات
يقدّم "تقرير معدل نقل البيانات" إحصاءات حول مقدار البيانات التي تستهلكها قاعدة بياناتك في العمليات الواردة والصادرة. ومع ذلك، يجب عدم استخدام تقرير معدل نقل البيانات لتقدير الفوترة، لأنه لا يتضمن معدل نقل البيانات المستخدم في العمليات الأخرى، مثل إنشاء ملفات تعريف لقاعدة البيانات. يقدّم تقرير معدل نقل البيانات تقديرًا تقريبيًا لحجم الحمولة للبيانات التي تستهلكها عمليات القراءة والكتابة والبث من قاعدة البيانات وإليها. فهي أداة تقيس الأداء، وليست أداة تتوقّع الفوترة.
يتضمّن "تقرير معدل نقل البيانات" السمات التالية:
المسار: المسار في قاعدة البيانات حيث تم تنفيذ العمليات. إذا كان هناك أكثر من 25 عقدة فرعية، فإن أداة المحلل تدمجها في مسار رئيسي.
الإجمالي: إجمالي وحدات البايت الصادرة أو الواردة المستخدَمة في جميع العمليات في المسار المحدّد
العدد: عدد العمليات التي حدثت في المسار المحدّد.
المتوسط: متوسط عدد وحدات البايت التي تم تنزيلها أو تحميلها في جميع العمليات في المسار المحدّد (وحدات البايت/الكتابة أو وحدات البايت/القراءة).
| تقرير معدّل نقل البيانات | |
|---|---|
| وحدات البايت التي تم تنزيلها | البيانات المستهلكة من خلال عمليات القراءة والبث التي يتم إرسالها عبر حِزم تطوير البرامج (SDK) للعملاء وواجهة برمجة التطبيقات REST API. |
| وحدات البايت التي تم تحميلها | البيانات المستهلكة من خلال طلبات الكتابة الواردة إلى خادم قاعدة البيانات تظهر عمليات الحذف كعمليات كتابة بحجم 0 بايت ضمن البيانات الواردة. |
طلبات البحث غير المفهرَسة
يمكن أن تكون طلبات البحث غير المفهرسة مكلفة، لأن العملاء يقومون بتنزيل جميع البيانات في موقع ثم يقومون بإجراء استعلامات عليها. يؤدي ذلك إلى استهلاك معدل نقل بيانات أكبر من اللازم. ننصحك بحلّ أكبر عدد ممكن من طلبات البحث غير المفهرَسة لتحسين أداء قاعدة البيانات.
يعرض تقرير "طلبات البحث غير المفهرَسة" السمات التالية:
- المسار: المسار في قاعدة البيانات حيث حدثت طلبات البحث غير المفهرَسة.
- الفهرسة: القاعدة التي يجب إضافتها لحلّ طلبات البحث غير المفهرَسة. مزيد من المعلومات حول فهرسة بياناتك
- العدد: عدد طلبات البحث غير المفهرَسة التي حدثت في المسار المحدّد.
تحديد المواصفات الشخصية المتقدّم
للاطّلاع على جميع العمليات التي تعالجها قاعدة البيانات، استخدِم العلامة --raw
عند تحليل قاعدة البيانات، على النحو التالي:
firebase database:profile --raw
يتضمّن الناتج الأوّلي أيضًا معلومات العميل لكل عملية، مثل سلاسل userAgent وعناوين IP. يمكنك الاطّلاع على مزيد من المعلومات حول العمليات المختلفة التي تم تحليلها في Firebase Realtime Database في أنواع عمليات Firebase Realtime Database.
أداة تحليل الملفات الشخصية: ليست أداة فوترة
لا تستخدِم أداة التحليل لتقدير تكلفة معدل نقل البيانات. تهدف أداة التحليل إلى منحك صورة عامة عن أداء قاعدة بياناتك، لمساعدتك في مراقبة العمليات وتحديد المشاكل وحلّها، وليس لتقدير الفوترة. ولا يأخذ في الاعتبار حركة بيانات الشبكة، بل يسجّل فقط تقديرًا لبيانات التطبيق المُرسَلة في الردود.
في ما يلي بعض الأمثلة الشائعة على حركة بيانات الشبكة التي تتم فوترتها من خلال Firebase والتي لا يتم تناولها في ملفك الشخصي في قاعدة البيانات:
- البيانات الإضافية للبروتوكول: من الضروري توفير بعض الزيارات الإضافية بين الخادم والعملاء لإنشاء جلسة والحفاظ عليها. استنادًا إلى البروتوكول الأساسي، قد تشمل هذه الزيارات: النفقات العامة لبروتوكول الوقت الفعلي في "قاعدة بيانات Firebase في الوقت الفعلي"، والنفقات العامة لبروتوكول WebSocket، والنفقات العامة لعنوان HTTP. في كل مرة يتم فيها إنشاء اتصال، تساهم هذه النفقات العامة، بالإضافة إلى أي نفقات عامة لتشفير SSL، في تكاليف الاتصال. على الرغم من أنّ هذا لا يمثّل عادةً قدرًا كبيرًا من معدل نقل البيانات، إلا أنّه يمكن أن يكون كبيرًا إذا كانت حمولاتك صغيرة أو إذا كنت تجري اتصالات متكررة وقصيرة.
- العبء الإضافي لتشفير طبقة المقابس الآمنة: هناك تكلفة مرتبطة بالعبء الإضافي لتشفير طبقة المقابس الآمنة اللازم للاتصالات الآمنة. في المتوسط، تبلغ هذه التكلفة حوالي 3.5 كيلوبايت لعملية تأكيد الاتصال الأولية، وحوالي 40 بايت لرؤوس سجلات بروتوكول أمان طبقة النقل (TLS) في كل رسالة صادرة. بالنسبة إلى معظم التطبيقات، تمثّل هذه الرسوم نسبة صغيرة من فاتورتك. ومع ذلك، قد تصبح هذه النسبة كبيرة إذا كانت حالتك المحددة تتطلب الكثير من عمليات تأكيد اتصال طبقة المقابس الآمنة. على سبيل المثال، قد تتطلّب الأجهزة التي لا تتوافق مع تذاكر جلسات بروتوكول أمان طبقة النقل (TLS) أعدادًا كبيرة من عمليات تأكيد اتصال طبقة المقابس الآمنة (SSL).