نمایه کردن پایگاه داده

عملکرد Firebase Realtime Database خود را با ابزار نمایه‌ساز پایگاه داده که در Firebase CLI تعبیه شده است بسنجید. ابزار نمایه‌ساز همه فعالیت‌های پایگاه داده شما را در یک دوره زمانی مشخص ثبت می‌کند، سپس گزارش مفصلی تولید می‌کند. از گزارش تفصیلی برای عیب‌یابی مشکلات عملکرد پایگاه داده، شناسایی بخش‌های مشکل‌دار، و کاهش پُرسمان‌های نمایه‌نشده استفاده کنید.

ساختن نمایه

  1. قبل‌از شروع نمایه‌سازی Firebase Realtime Database، مطمئن شوید که از جدیدترین نسخه Firebase CLI استفاده می‌کنید و آن را برای پایگاه داده و پروژه‌ای که می‌خواهید نمایه‌سازی کنید مقداردهی اولیه کرده‌اید. توجه داشته باشید که برای نمایه کردن باید ویرایشگر یا مالک آن پروژه باشید.

  2. با فرمان زیر، نمایه‌سازی پایگاه داده‌تان را شروع کنید:

    firebase database:profile
    نمایه‌ساز پیام وضعیتی را نمایش می‌دهد که عملیات را از پایگاه داده شما ضبط می‌کند و نمایه را می‌سازد.

  3. برای تکمیل نمایه و نمایش نتایج، کلید ورود را فشار دهید.

تفسیر کردن نتایج

ابزار نمایه‌ساز داده‌هایی را که درباره عملیات پایگاه داده شما جمع‌آوری کرده است، تجمیع می‌کند و نتایج را در سه دسته اصلی نمایش می‌دهد: سرعت، پهنای باند، و پرس‌وجوهای نمایه‌نشده.

سرعت

«گزارش سرعت» زمان پاسخ سرور (به میلی‌ثانیه) را برای هر نوع عملیات اندازه‌گیری می‌کند. بااین‌حال، سرعت اندازه‌گیری‌شده در «گزارش سرعت» ممکن است واقعاً منعکس‌کننده سرعت تجربه کاربر نهایی نباشد. عوامل مختلفی، ازجمله شرایط شبکه، می‌تواند باعث تأخیر در سمت کارخواه شود.

«گزارش سرعت» شامل ویژگی‌های زیر است:

  • مسیر: مسیری در پایگاه داده شما که عملیات در آن انجام شده است. اگر بیش‌از ۲۵ گره فرزند وجود داشته باشد، ابزار نمایه‌ساز این گره‌ها را در یک مسیر والد جمع می‌کند و نشانگر $wildcard را اضافه می‌کند. ممکن است دایرکتوری ریشه پایگاه داده‌تان را در گزارش ببینید که با خط مورب روبه‌جلو / نشان داده می‌شود.
  • تعداد: تعداد عملیاتی که در مسیر ارائه‌شده رخ داده است.
  • میانگین سرعت اجرا: میانگین زمانی که طول می‌کشد تا سرور منطق کسب‌وکار موردنیاز برای مدیریت نوع عملیات خاص را در آن مسیر اجرا کند. بازه زمانی اندازه‌گیری‌شده در اینجا پس‌از بازه زمانی اندازه‌گیری‌شده توسط «میانگین زمان انتظار» که در زیر شرح داده شده است شروع می‌شود.
  • میانگین زمان انتظار: میانگین زمانی که درخواست‌ها قبل‌از اجرا شدن در صف می‌مانند. این تأخیر برای همه درخواست‌های آغازشده ازسوی مشتری معمول است. کل تأخیر درخواست سمت سرور تقریباً مجموع زمان معلق بودن آن درخواست و سرعت اجرای آن است.
  • اجازه رد شد: تعداد عملیات در مسیر داده‌شده که توسط قوانین پایگاه داده Firebase در پایگاه داده شما مسدود شده است.
گزارش سرعت براساس نوع عملیات
خواندن سرعت اجرا زمان پاسخ سرور به درخواست‌های کارخواه برای خواندن داده‌ها از پایگاه داده. زمان اجرای خواندن معمولاً با مقدار داده‌ای که خوانده می‌شود مقیاس‌بندی می‌شود، اما حتی برخی‌از خواندن‌های کوچک نیز ممکن است به‌دلیل پیش‌واکشی حافظه پنهان به‌تأخیر بیفتد.
سرعت اجرای نوشتن زمان پاسخ سرور به درخواست‌های کارخواه برای نوشتن داده در پایگاه داده. زمان اجرای نوشتن با مقدار داده‌ای که نوشته می‌شود مقیاس‌بندی می‌شود.
سرعت اجرای اتصال زمان پاسخ سرور برای درخواست‌های ایجادشده برای کارخواه‌های پایگاه داده. تأخیر برای درخواست‌های اتصال تحت‌تأثیر دفترداری سمت سرور درون‌حافظه‌ای مربوط به مدیریت اتصال است.
سرعت اجرای همه‌فرستی

مدت زمانی که سرور برای توزیع داده‌ها به مشتریانی که برای به‌روزرسانی‌های هم‌زمان به مسیر داده‌شده گوش می‌دهند، صرف می‌کند.

ویژگی تعداد در «گزارش سرعت همه‌فرستی» تعداد همه‌فرستی‌های انجام‌شده را جمع‌آوری می‌کند، نه تعداد کارخواه‌هایی که اطلاعات را دریافت کرده‌اند. برای مثال، اگر ۱۰ کارخواه در مسیر مشخصی درحال گوش دادن باشند و سرور به‌روزرسانی‌ای را برای هر ۱۰ کارخواه همه‌فرستی کند، تعداد همه‌فرستی فقط ۱ همه‌فرستی را نشان می‌دهد، هرچند ۱۰ کارخواه داده‌ها را دریافت کرده‌اند.

ویژگی اجازه رد شد در گزارش «سرعت همه‌فرستی» گنجانده نشده است.

Bandwidth

«گزارش پهنای باند» اطلاعاتی درباره میزان مصرف داده پایگاه داده شما در عملیات ورودی و خروجی ارائه می‌دهد. بااین‌حال، نباید از «گزارش پهنای باند» برای برآورد صورت‌حساب استفاده کنید، زیرا این گزارش شامل پهنای باند استفاده‌شده برای عملیات دیگر، مانند نمایه‌سازی پایگاه داده شما، نمی‌شود. «گزارش پهنای باند» اندازه بار مفید داده‌های مصرف‌شده توسط عملیات خواندن، نوشتن، و همه‌فرستی به پایگاه داده شما و از آن را به‌طور تقریبی برآورد می‌کند. این ابزار عملکرد را می‌سنجد، نه ابزاری که صورت‌حساب را پیش‌بینی کند.

«گزارش پهنای باند» شامل ویژگی‌های زیر است:

  • مسیر: مسیری در پایگاه داده شما که عملیات در آن انجام شده است. اگر بیش‌از ۲۵ گره فرزند وجود داشته باشد، ابزار نمایه‌ساز این گره‌ها را در مسیر والد جمع می‌کند.

  • مجموع: مجموع بایت‌های خروجی یا ورودی استفاده‌شده در همه عملیات‌ها در مسیر داده‌شده.

  • تعداد: تعداد عملیاتی که در مسیر ارائه‌شده رخ داده است.

  • میانگین: میانگین تعداد بایت‌های بارگیری‌شده یا بارگذاری‌شده در سراسر عملیات در مسیر داده‌شده (بایت/نوشتن یا بایت/خواندن).

گزارش پهنای باند
بایت‌های بارگیری‌شده داده‌های مصرف‌شده ازطریق عملیات خواندن و پخش که ازطریق کیت‌های توسعه نرم‌افزار مشتری و REST API ارسال شده‌اند.
بایت‌های بارگذاری‌شده داده‌های مصرف‌شده ازطریق درخواست‌های نوشتن که به سرور پایگاه داده وارد می‌شوند. موارد حذف‌شده به‌صورت نوشتن با ۰ بایت در بخش ورودی نشان داده می‌شود.

پُرسمان‌های نمایه‌نشده

پُرسمان‌های نمایه‌نشده می‌توانند گران باشند، زیرا کارخواه‌ها همه داده‌ها را در یک مکان بارگیری می‌کنند و سپس پُرسمان‌ها را روی آن اجرا می‌کنند. این کار پهنای باند بیشتری نسبت به آنچه لازم است مصرف می‌کند. برای بهینه‌سازی عملکرد پایگاه داده‌تان، تا جایی که می‌توانید پُرسمان‌های نمایه‌نشده را حل‌وفصل کنید.

گزارش «پُرسمان‌های نمایه‌نشده» ویژگی‌های زیر را نمایش می‌دهد:

  • مسیر: مسیری در پایگاه داده شما که پرسمان‌های نمایه‌نشده در آن رخ داده است.
  • نمایه: قانونی که باید برای حل پُرسمان‌های نمایه‌نشده اضافه کنید. درباره نمایه‌سازی در نمایه‌سازی داده‌ها بیشتر بدانید.
  • تعداد: تعداد پُرسمان‌های نمایه‌سازی‌نشده‌ای که در مسیر ارائه‌شده رخ داده است.

نمایه‌سازی پیشرفته

برای دیدن همه عملیاتی که پایگاه داده شما انجام می‌دهد، هنگام نمایه‌سازی پایگاه داده از پرچم --raw به‌صورت زیر استفاده کنید:

firebase database:profile --raw

خروجی خام همچنین شامل اطلاعات مشتری برای هر عملیات است، مانند رشته‌های userAgent و نشانی‌های IP. درباره عملیات مختلفی که در Firebase Realtime Database شما در انواع عملیات Firebase Realtime Database نمایه شده است بیشتر بدانید.

ابزار نمایه‌ساز: ابزار صورت‌حساب نیست

از ابزار نمایه‌ساز برای برآورد هزینه پهنای باند استفاده نکنید. ابزار نمایه‌ساز برای این طراحی شده است که تصویری کلی از عملکرد پایگاه داده‌تان به شما ارائه دهد تا به شما در نظارت بر عملیات و عیب‌یابی مشکلات کمک کند، نه برای برآورد صورت‌حساب. این معیار ترافیک شبکه را درنظر نمی‌گیرد، بلکه فقط تخمینی از داده‌های برنامه ارسال‌شده در پاسخ‌ها را ثبت می‌کند.

در زیر چند نمونه رایج از ترافیک شبکه که Firebase برای آن‌ها صورت‌حساب صادر می‌کند و در نمایه پایگاه داده شما پوشش داده نمی‌شوند آورده شده است:

  • سربار پروتکل: برای ایجاد و حفظ جلسه، مقداری ترافیک اضافی بین سرور و کارخواه‌ها لازم است. بسته به پروتکل زیربنایی، این ترافیک ممکن است شامل این موارد باشد: سربار پروتکل هم‌زمان «پایگاه داده هم‌زمان Firebase»، سربار WebSocket، و سربار سرصفحه HTTP. هربار که اتصالی برقرار می‌شود، این سربار، به‌همراه هر سربار رمزگذاری SSL، به هزینه‌های اتصال اضافه می‌شود. اگرچه این معمولاً مقدار زیادی از پهنای باند نیست، اما اگر محموله‌های شما کوچک باشند یا اتصالات کوتاه و مکرر برقرار کنید، می‌تواند قابل‌توجه باشد.
  • سربار رمزگذاری SSL: هزینه‌ای مرتبط با سربار رمزگذاری SSL وجود دارد که برای اتصالات امن ضروری است. به‌طور میانگین، این هزینه تقریباً ۳٫۵ کیلوبایت برای دست‌دهی اولیه و تقریباً ۴۰ بایت برای سرایندهای ثبت TLS در هر پیام خروجی است. برای اکثر برنامه‌ها، این مقدار درصد کمی از صورت‌حساب شما است. اما اگر مورد خاص شما به تعداد زیادی دست‌دهی SSL نیاز داشته باشد، این درصد می‌تواند بسیار بزرگ شود. برای مثال، دستگاه‌هایی که از بلیت‌های جلسه TLS پشتیبانی نمی‌کنند ممکن است به تعداد زیادی دست‌دهی اتصال SSL نیاز داشته باشند.

درباره درک و برآورد صورت‌حساب بیشتر بخوانید.