ניתוח ביצועי מסד הנתונים באמצעות 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 שנוצרו במופע המקורי לא מועברים לרפליקות לקריאה.

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