ניתוח ביצועי מסד הנתונים באמצעות Extended Events

בדף הזה מוסבר איך להשתמש ב-Extended Events (XEvents) במופעים שלכם.

ב-Cloud SQL ל-SQL Server אפשר להשתמש ב-XEvents כדי לעקוב אחרי הביצועים של מסד הנתונים, לזהות בעיות ולפתור אותן. כדי לעשות את זה, יוצרים סשנים של XEvent וקוראים קובצי פלט של XEvent. אפשר לקרוא את קובצי הפלט של XEvent במופע או להוריד את קובצי XEvent מקטגוריה של Cloud Storage.

לפני שמתחילים

אם אתם רוצים להעלות את קובצי ה-XEvent לקטגוריה של Cloud Storage, אתם צריכים ליצור קטגוריה בחשבון Google Cloud .

שיטות מומלצות

  • כדי להימנע מהעברה של קבצים גדולים בין אזורים, מומלץ לבצע אחת מהפעולות הבאות:
    • יצירת קטגוריות של Cloud Storage שפועלות במספר אזורים
    • הגדרת קטגוריית היעד של Cloud Storage באותו אזור שבו נמצאת המכונה
  • לפני שמשתמשים ב-XEvents, צריך להפעיל הגדלות אוטומטיות של נפח האחסון. יכול להיות שקבצי הפלט של XEvent ידרשו נפח אחסון משמעותי בדיסק, בהתאם לגודל הכולל שלהם ולמרווחי השמירה.
  • כדי להימנע משמירה של יותר מדי קובצי XEvent למשך זמן רב, צריך להגדיר מדיניות לשמירת נתונים עבור קטגוריית Cloud Storage.
  • אם יוצרים סשן XEvent באמצעות ממשק המשתמש של SSMS, אבל חלק מהתיבות להזנת ערכים לא מופיעות, צריך לשנות את הגודל של החלון Create XEvent Session.

איך יוצרים סשנים של XEvent

התכונה XEvents מופעלת במופעים שלכם באופן אוטומטי.

משתמשים בפקודה CREATE EVENT SESSION כדי להגדיר סשנים חדשים של XEvent. אפשר גם להשתמש בממשק המשתמש של SQL Server Management Studio (SSMS) כדי ליצור סשנים של XEvent.

ב-Cloud SQL, הפרמטרים הבאים נאכפים בכל סשן XEvent:

פרמטר תיאור ערכים מותרים
FILENAME מציינת את שם הקובץ והנתיב לאחסון נתוני הפעלה של XEvents. כל נתיב שמתחיל ב-/var/opt/mssql/xevents/
MAX_FILE_SIZE מציינים את הגודל המקסימלי של כל קובץ פלט לפני שנוצר קובץ חדש. מינימום 10MB
מקסימום 1GB
MAX_MEMORY מציין את כמות הזיכרון המקסימלית להקצאה לסשן לצורך אחסון זמני של אירועים. מינימום 4MB
מקסימום 8MB
MAX_DISPATCH_LATENCY מציין את הזמן המקסימלי (בשניות) שאירועים יכולים להישאר בתור לשליחת אירועים לפני שהם נשלחים ליעד. מינימום שנייה אחת
מקסימום 30 שניות
MAX_EVENT_SIZE הגודל המקסימלי של כל אירוע, בבייטים. מינימום 4MB
מקסימום 8MB

פרמטרים להגדרת סשן של XEvent

אפשר להגדיר סשנים של XEvent באמצעות הפרמטרים הבאים כדגלים מותאמים אישית:

פרמטר תיאור
cloud sql xe bucket name מציינים את הקטגוריה של Cloud Storage שאליה רוצים להעלות את הפלט של סשן XEvent. אם לא מציינים את זה, Cloud SQL לא מעלה את נתוני הפלט של סשן XEvent ל-Cloud Storage.
cloud sql xe output total disk size (mb) מציינים את נפח האחסון בדיסק שיוקצה לפלט של כל סשני XEvent. אם לא מציינים את הערך הזה, Cloud SQL משתמש בנפח דיסק של 512MB כברירת מחדל. אם קובצי הפלט של XEvent צורכים יותר מקום בדיסק מהערך של cloud sql xe output total disk size (mb), ‏ Cloud SQL מסיר את הקבצים האלה מהדיסק.
cloud sql xe file retention (mins) מציינים את זמן השמירה במופע בדקות עבור קבצים שנוצרו על ידי יעדי הקבצים של הפעלות XEvent. אם לא מציינים ערך, Cloud SQL משתמש בערך ברירת המחדל של 7 ימים.
cloud sql xe upload interval (mins) מציינים את מרווח הזמן להעלאה של קובצי XEvent שמועלים ל-Cloud Storage. אם לא מציינים ערך, Cloud SQL משתמש בערך ברירת המחדל של 10 דקות.

מידע נוסף על הגדרת הדגלים האלה זמין במאמר הגדרת דגלים של מסד נתונים.

הסבר על קובצי הפלט של סשן XEvent

אפשר לקרוא קובצי פלט של סשן XEvent ממופע Cloud SQL או מקטגוריית Cloud Storage.

קריאת קובצי פלט של XEvent ממופע

כדי לאחזר את הנתונים מקובץ XEvent שנוצר על ידי סשן XEvent, משתמשים בפונקציה sys.fn_xe_file_target_read_file.

הנה דוגמה:

SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);

קריאת קובצי פלט של XEvent מקטגוריה

כדי לקרוא קובצי פלט של XEvent מקטגוריה של Cloud Storage, צריך להוריד את הקבצים מהקטגוריה למכונה של SQL Server. אפשר להוריד מאחד מהמקרים הבאים:

  • מכונת Windows של Compute Engine
  • מכונת Linux ב-Compute Engine
  • סוג נוסף של מכונה שמופעל בה SQL Server

לאחר מכן, מעבירים את קובצי הפלט של XEvent מהמאגר למיקום שאפשר לגשת אליו מהמופע הזה, כמו הדיסק המקומי שלו. לאחר מכן, כדי להחזיר מידע מקובץ הפלט של XEvent, מריצים את הפונקציה sys.fn_xe_file_target_read_file עם חשבון שיש לו את ההרשאה VIEW SERVER STATE בשרת. מידע נוסף על הרשאות זמין במאמר בנושא הרשאות.

איך מעניקים הרשאות להעלאת קבצים לקטגוריה של Cloud Storage

כדי להעניק הרשאות להעלאת קובצי XEvent לקטגוריה של Cloud Storage, מבצעים את השלבים הבאים:

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שאליה רוצים להעלות את קובצי ה-XEvent.

  3. בדף Bucket details, לוחצים על הכרטיסייה Permissions.

  4. בכרטיסייה View by principals, לוחצים על Grant Access.

  5. בקטע Add principals, בשדה New principal, מזינים את חשבון השירות של מופע Cloud SQL שבו רוצים להשתמש.

  6. בקטע Assign roles, בשדה Select a role, מזינים את התפקיד Storage Object User (roles/storage.objectUser). מידע נוסף על התפקיד זמין במאמר התפקידים הנדרשים ב-Cloud Storage.

מדדי מעקב

אפשר לעקוב אחרי הפעולות הבאות שקשורות ל-xevent כחלק ממדדי Cloud SQL, שזמינים דרך Metrics Explorer:

  • ‫database/sqlserver/xevents_upload_count: מציין את המספר הכולל של ניסיונות העלאה של קובצי xevent שהצליחו וניסיונות העלאה שנכשלו. כדאי לבדוק את המדד הזה כדי לראות אם ההעלאות בוצעו בהצלחה.
  • ‫database/sqlserver/xevents_size.: מציין את נפח הדיסק שבו נעשה שימוש על ידי קובצי xevent שמאוחסנים במופע, בבייטים.

מעקב אחרי סשנים של XEvent

אפשר לעקוב אחר פעילויות שקשורות להפעלת XEvent דרך הקובץ xevents.log עבור הפעולות הבאות:

  • קבצי הפלט של XEvent הוסרו מהדיסק, הם לא הועלו ל-Cloud Storage ותפסו נפח אחסון בדיסק שגדול מהערך שמשויך ל-cloud sql xe output total disk size (mb).
  • קבצי הפלט של XEvent הוסרו מהדיסק, הם לא הועלו ל-Cloud Storage והם ישנים יותר מהערך שמשויך ל-cloud sql xe file retention.

שיקולים לגבי עותקים לקריאה ומאגרי עותקים לקריאה

בקטע הזה מפורט מידע על סשנים של XEvent עבור עותקים לקריאה ומאגרי קריאה.

למאגרי עותקים לקריאה ולמאגרי קריאה חדשים

  • כל פרמטרי ההגדרה של סשן XEvent שמועברים דרך דגלי מסד הנתונים במופע המקורי זמינים בעותק לקריאה שנוצר לאחרונה.
  • כל סשנים של XEvent שקיימים במופע המקורי כשמשכפלים את בסיס הנתונים לקריאה, זמינים בבסיס הנתונים המשוכפל לקריאה. שימו לב שצריך להפעיל ידנית סשנים של XEvent בעותק לקריאה, אלא אם הם מוגדרים להפעלה אוטומטית. מידע נוסף זמין במאמר איך יוצרים סשנים של XEvent.
  • אם משכפלים מכונה ראשית, כל הדגלים של מסד הנתונים שמופיעים במכונה הראשית מועברים למכונה המשוכפלת. בנוסף, צריך להעניק הרשאות לחשבון השירות של המופע המשוכפל כדי לגשת שוב לקטגוריה של Cloud Storage.
  • ההעתק לקריאה או מאגר הקריאה מעלים קובץ פלט ל-Cloud Storage.
    • במקרה של עותקי קריאה, שם הקובץ מפנה לעותק הקריאה.
    • במאגרי קריאה, שם הקובץ מתייחס לצומת הספציפי של מאגר הקריאה.

למאגרי קריאה ולעותקי קריאה קיימים

  • פרמטרים של הגדרת סשן XEvent שמועברים דרך דגלי מסד נתונים למופע המקורי לא מועברים לרפליקות לקריאה.
  • סשנים של XEvent שנוצרו במופע המקורי לא מועברים לרפליקות לקריאה.

המאמרים הבאים