نمایه پایگاه داده خود

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

پروفایل بسازید

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

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

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

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

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

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

سرعت

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

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

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

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

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

دارایی Permission Denied در گزارش سرعت پخش گنجانده نشده است.

پهنای باند

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

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

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

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

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

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

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

پرس و جوهای فهرست نشده

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

گزارش Inindexed Queries ویژگی های زیر را نمایش می دهد:

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

پروفایل پیشرفته

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

firebase database:profile --raw

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

ابزار پروفایل: ابزار صورتحساب نیست

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

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

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

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