מדוד את הביצועים של מסד הנתונים בזמן אמת של Firebase שלך עם כלי הפרופיל של מסד הנתונים, המובנה ב- Firebase CLI . כלי הפרופילים רושם את כל הפעילות במסד הנתונים שלך על פני פרק זמן נתון, ולאחר מכן יוצר דוח מפורט. השתמש בדוח המפורט כדי לפתור בעיות בביצועי מסד הנתונים שלך, לזהות אזורים בעייתיים ולהפחית שאילתות ללא אינדקס.
בנה פרופיל
לפני שתתחיל ליצור פרופיל של מסד הנתונים של Firebase Realtime, ודא שאתה משתמש בגרסה העדכנית ביותר של Firebase CLI ושאתחל אותו עבור מסד הנתונים והפרויקט שברצונך ליצור פרופיל. שים לב שאתה חייב להיות עורך או בעלים של הפרויקט הזה כדי ליצור פרופיל.
התחל ליצור פרופיל של מסד הנתונים שלך עם הפקודה הבאה:
firebase database:profile
הפרופיל מציג הודעת סטטוס בזמן שהוא מתעד פעולות ממסד הנתונים שלך ובונה את הפרופיל.הקש Enter כדי להשלים את הפרופיל ולהציג את התוצאות.
פרש את התוצאות שלך
כלי הפרופילים אוסף את הנתונים שהוא נאסף לגבי פעולות מסד הנתונים שלך ומציג את התוצאות בשלוש קטגוריות עיקריות: מהירות , רוחב פס ושאילתות ללא אינדקס .
מְהִירוּת
דוח המהירות מודד את זמן התגובה של השרת (במילישניות) עבור כל סוג פעולה. עם זאת, ייתכן שהמהירות הנמדדת בדוח המהירות לא באמת משקפת את חוויית המהירות של משתמשי הקצה. גורמים שונים, כולל תנאי רשת, יכולים להוסיף חביון בצד הלקוח.
דוח המהירות כולל את המאפיינים הבאים:
- נתיב: הנתיב במסד הנתונים שבו התרחשו הפעולות. אם יש יותר מ-25 צמתים צאצאים, כלי הפרופיל ממוטט אותם לנתיב אב ומוסיף סמן
$wildcard
. ייתכן שתראה את ספריית הבסיס של מסד הנתונים שלך בדוח, המיוצגת על ידי קו נטוי/
. - ספירה: מספר הפעולות שהתרחשו בנתיב הנתון.
- מהירות ביצוע ממוצעת: הזמן הממוצע שלוקח לשרת לבצע לוגיקה עסקית הדרושה לטיפול בסוג הפעולה המסוים בנתיב זה. מרווח הזמן הנמדד כאן מתחיל לאחר זה שנמדד על ידי "זמן המתנה ממוצע" המתואר להלן.
- זמן ממתין ממוצע: הזמן הממוצע שבקשות מעבירות בתור לפני ביצוען. עיכוב זה משותף לכל הבקשות ביוזמת הלקוח. זמן האחזור הכולל של הבקשות בצד השרת הוא בערך הסכום של זמן ההמתנה ומהירות הביצוע של בקשה זו.
- הרשאה נדחתה: מספר הפעולות בנתיב הנתון שנחסמו על ידי כללי מסד הנתונים של Firebase במסד הנתונים שלך.
דוח מהירות לפי סוג פעולה | |
---|---|
קרא את מהירות ביצוע | זמן התגובה של השרת לבקשות הלקוח לקרוא נתונים ממסד הנתונים. זמן ביצוע הקריאה משתנה בדרך כלל בהתאם לכמות הנתונים הנקראת, אך אפילו כמה קריאות קטנות עשויות להתעכב על ידי שליפת מטמון מראש. |
כתוב מהירות ביצוע | זמן התגובה של השרת עבור בקשות הלקוח לכתוב נתונים למסד הנתונים. כתוב סולמות זמן ביצוע עם כמות הנתונים הנכתבים. | חיבור מהירות ביצוע | זמן התגובה של השרת לבקשות ליצירת לקוחות מסד נתונים. השהיה לבקשות חיבור נשלט על ידי הנהלת חשבונות בצד השרת בזיכרון הקשורה לניהול חיבורים. |
מהירות ביצוע שידור | משך הזמן שלוקח לשרת להפיץ נתונים ללקוחות שמאזינים לנתיב הנתון עבור עדכונים בזמן אמת. המאפיין ספירה בדוח מהירות השידור אוסף את מספר השידורים שהתרחשו, לא את מספר הלקוחות שקיבלו את המידע. לדוגמה, אם 10 לקוחות האזינו בנתיב נתון, והשרת שידר עדכון לכל 10 הלקוחות, ספירת השידורים משקפת רק שידור אחד, למרות ש-10 לקוחות קיבלו את הנתונים. המאפיין הרשאה נדחתה אינו כלול בדוח מהירות השידור. |
רוחב פס
דוח רוחב הפס מספק תובנות לגבי כמה נתונים בסיס הנתונים שלך צורך בפעולות נכנסות ויוצאות. עם זאת, אין להשתמש בדוח רוחב הפס כדי להעריך את החיוב, מכיוון שהוא אינו כולל רוחב פס המשמש לפעולות אחרות, כמו יצירת פרופיל של מסד הנתונים שלך. דוח רוחב הפס מעריך באופן גס את גודל המטען של הנתונים הנצרכים על ידי פעולות קריאה, כתיבה ושידור למסד הנתונים שלך וממנו. זה כלי שמודד ביצועים, לא כזה שחוזה חיוב.
דוח רוחב הפס כולל את המאפיינים הבאים:
נתיב: הנתיב במסד הנתונים שבו התרחשו הפעולות. אם יש יותר מ-25 צמתים צאצאים, כלי הפרופיל ממוטט אותם לנתיב אב.
סך הכל: סך הבתים היוצאים או הנכנסים בשימוש בכל הפעולות בנתיב הנתון.
ספירה: מספר הפעולות שהתרחשו בנתיב הנתון.
ממוצע: המספר הממוצע של בתים שהורדו או הועלו על פני פעולות בנתיב הנתון (בתים/כתיבה או בתים/קריאה).
דוח רוחב פס | |
---|---|
הורדת בייטים | נתונים שנצרכו באמצעות פעולות קריאה ושידור שנשלחו דרך SDKs של הלקוח ו-REST API. |
בייטים שהועלו | נתונים הנצרכים באמצעות בקשות כתיבה המגיעות לשרת מסד הנתונים. מחיקות מופיעות ככתיבה עם 0 בתים מתחת לכניסה. |
שאילתות ללא אינדקס
שאילתות ללא אינדקס יכולות להיות יקרות, מכיוון שלקוחות מורידים את כל הנתונים במיקום מסוים ואז מבצעים עליו שאילתות. זה מנצל יותר רוחב פס מהנדרש. פתור כמה שיותר שאילתות ללא אינדקס כדי לייעל את ביצועי מסד הנתונים שלך.
הדוח שאילתות ללא אינדקס מציג את המאפיינים הבאים:
- נתיב: הנתיב במסד הנתונים שלך שבו התרחשו השאילתות ללא אינדקס.
- אינדקס: הכלל שעליך להוסיף כדי לפתור את השאילתות שלא נוספו לאינדקס. למידע נוסף על הוספה לאינדקס ב- אינדקס את הנתונים שלך .
- ספירה: מספר השאילתות ללא אינדקס שהתרחשו בנתיב הנתון.
פרופיל מתקדם
כדי לראות את כל הפעולות שמסד הנתונים שלך מטפל, השתמש בדגל --raw
בעת פרופיל מסד הנתונים שלך, באופן הבא:
firebase database:profile --raw
הפלט הגולמי כולל גם מידע לקוח עבור כל פעולה, כגון מחרוזות userAgent
וכתובות IP. למידע נוסף על הפעולות השונות המופיעות במסד הנתונים שלך בזמן אמת של Firebase ב- Firebase Realtime Database סוגי פעולות .
כלי הפרופילים: לא כלי חיוב
אל תשתמש בכלי הפרופיל כדי להעריך את עלות רוחב הפס. כלי הפרופילים נועד לתת לך תמונה כוללת של ביצועי מסד הנתונים שלך, לעזור לך לנטר את הפעולות ולפתור בעיות, לא להעריך את החיוב. הוא אינו מתייחס לתעבורת הרשת, הוא רושם רק אומדן של נתוני האפליקציה שנשלחו בתגובות.
להלן כמה דוגמאות נפוצות לתעבורת רשת שחויבת על ידי Firebase שאינן מכוסות בפרופיל מסד הנתונים שלך:
- תקורה של פרוטוקול: יש צורך בתנועה נוספת בין השרת ללקוחות כדי להקים ולתחזק הפעלה. בהתאם לפרוטוקול הבסיסי, תעבורה זו עשויה לכלול: תקורה של פרוטוקול בזמן אמת של Firebase Realtime Database, תקורה של WebSocket ותקורה של כותרת HTTP. בכל פעם שנוצר חיבור, תקורה זו, בשילוב עם כל תקורה של הצפנת SSL, תורמת לעלויות החיבור. למרות שבדרך כלל זה לא כמות גדולה של רוחב פס, זה יכול להיות משמעותי אם המטענים שלך הם זעירים או שאתה יוצר חיבורים תכופים וקצרים.
- תקורה של הצפנת SSL: ישנה עלות הקשורה לתקורה של הצפנת SSL הנחוצה לחיבורים מאובטחים. בממוצע, עלות זו היא כ-3.5KB עבור לחיצת היד הראשונית, וכ-40B עבור כותרות רשומות TLS בכל הודעה יוצאת. עבור רוב האפליקציות, זהו אחוז קטן מהחשבון שלך. עם זאת, זה יכול להפוך לאחוז גדול אם המקרה הספציפי שלך דורש הרבה לחיצות יד SSL. לדוגמה, מכשירים שאינם תומכים בכרטיסי הפעלה של TLS עשויים לדרוש מספר רב של לחיצות ידיים לחיבור SSL.
קרא עוד על הבנה והערכת החשבון שלך .