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

לשכפולים לקריאה קיימים

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

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