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