מתודולוגיה לבדיקת ביצועים של AlloyDB Omni במכונה וירטואלית

בחירת גרסה של מאמר העזרה:

במסמך הזה מפורטות המלצות להרצת בדיקות ביצועים ב-AlloyDB Omni במכונה וירטואלית. במסמך הזה אנחנו יוצאים מנקודת הנחה שאתם מכירים את PostgreSQL.

כשאתם משווים בין ביצועים, הגדירו מה אתם מצפים ללמוד מהבדיקה לפני שאתם מתחילים. לדוגמה:

  • מהי התפוקה המקסימלית שהמערכת יכולה להשיג?
  • כמה זמן נמשכת שאילתה או עומס עבודה מסוימים?
  • איך הביצועים משתנים ככל שכמות הנתונים גדלה?
  • איך משווים בין הביצועים של שתי מערכות שונות?
  • בכמה זמן מנוע מבוסס-עמודות מקצר את זמן התגובה של ביצועי השאילתה?
  • מה העומס שמסד נתונים יכול לעמוד בו לפני שצריך לשקול שדרוג למכונה חזקה יותר?

כדי להבין את המטרות של מחקר הביצועים, צריך לדעת איזה מבחן ביצועים להריץ, איזו סביבה נדרשת ואילו מדדים צריך לאסוף.

יכולת חזרה

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

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

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

גודל מסד הנתונים, שמירה במטמון ודפוסי קלט/פלט

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

נסו לשכפל את דפוסי הקלט/פלט של האפליקציה. היחס בין קריאות לכתיבות חשוב לפרופיל הביצועים של האפליקציה.

משך ההשוואה לשוק

במערכת מורכבת, יש הרבה מידע על המצב שנשמר בזמן שהמערכת פועלת: נוצרים חיבורים למסדי נתונים, מטמונים מתמלאים, תהליכים ושרשורים נוצרים. בתחילת בדיקת הביצועים, האתחול של הרכיבים האלה עלול לצרוך משאבי מערכת ולהשפיע לרעה על הביצועים שנמדדו אם זמן הריצה של עומס העבודה קצר מדי.

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

בדיקה שיטתית

כשמבצעים אופטימיזציה של הביצועים, משנים רק משתנה אחד בכל פעם. אם תשנו כמה משתנים בין הרצות, לא תוכלו לבודד את המשתנה ששיפר את הביצועים. למעשה, שינויים מרובים יכולים לקזז זה את זה, כך שלא תראו את היתרון של שינוי מתאים. אם שרת מסד הנתונים מנוצל יתר על המידה, נסו לעבור למכונה עם יותר מעבדי vCPU תוך שמירה על עומס קבוע. אם השרת של מסד הנתונים לא מנוצל מספיק, כדאי לנסות להגדיל את העומס תוך שמירה על הגדרת המעבד ללא שינוי.

הטופולוגיה של הרשת וזמני האחזור

הטופולוגיה של הרשת במערכת שלכם יכולה להשפיע על תוצאות בדיקת הביצועים. זמן האחזור בין אזורים שונה. כשמבצעים בדיקות ביצועים, חשוב לוודא שהלקוח ואשכול מסד הנתונים נמצאים באותו אזור כדי למזער את זמן האחזור ברשת ולהשיג את הביצועים הטובים ביותר – במיוחד באפליקציות עם תפוקה גבוהה ועסקאות קצרות, כי זמן האחזור ברשת יכול להיות רכיב משמעותי בזמן התגובה הכולל של העסקה.

כשמשווים בין הביצועים של שתי מערכות שונות, חשוב לוודא שהטופולוגיה של הרשת זהה בשתי המערכות. חשוב לזכור שאי אפשר לבטל לגמרי את השונות בזמן האחזור ברשת, וגם באותו אזור יכולים להיות הבדלים בזמן האחזור בגלל הטופולוגיות של הרשת.

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

באיור הבא מוצגת הארכיטקטורה האופיינית של אפליקציית אינטרנט שמשתמשת ב-AlloyDB Omni. בקשות של לקוחות מטופלות על ידי מאזן עומסים, שמעביר כל בקשה לאחד משרתי האינטרנט הרבים. כל שרתי האינטרנט מחוברים ל-AlloyDB Omni. חלק מהשרתים נמצאים באזור שונה מזה שבו AlloyDB Omni פועל, ולכן זמן האחזור יהיה ארוך יותר כשמבצעים בקשות למסד הנתונים.

תרשים זרימה שמציג ארכיטקטורה אופיינית של אפליקציית אינטרנט.
איור 1: איור של ארכיטקטורה טיפוסית של אפליקציית אינטרנט. אנחנו מצפים לזמני אחזור קצרים יותר כששרתי האינטרנט באזור B שולחים בקשות למסד הנתונים, כי הם נמצאים באותו אזור כמו מסד הנתונים של AlloyDB Omni.

מעקב אחרי ניצול המשאבים במערכת

כדי לשפר את הביצועים של מערכת מסד הנתונים, צריך לעקוב אחרי השימוש במשאבים גם של מערכת מסד הנתונים וגם של מערכות הלקוח שמשתמשות במערכת מסד הנתונים. מעקב אחרי שתי המערכות מאפשר לוודא שמערכות הלקוח מספקות מספיק עומס עבודה כדי לקבל מדידות משמעותיות במערכת מסד הנתונים. חשוב מאוד לעקוב אחרי ניצול המשאבים של המערכת שאתם בודקים. חשוב באותה מידה לעקוב אחרי ניצול המשאבים של מערכות הלקוח שבהן אתם משתמשים כדי להפעיל את עומס העבודה. לדוגמה, אם אתם רוצים לקבוע את מספר הלקוחות המקסימלי שמערכת מסד הנתונים שלכם יכולה לתמוך בו לפני שייגמרו משאבי ה-CPU, תצטרכו מספיק מערכות לקוח כדי ליצור את עומס העבודה הנדרש לניצול כל משאבי ה-CPU במערכת מסד הנתונים. לא תוכלו להפעיל את מערכת מסד הנתונים בצורה מספיק חזקה אם למכונות הלקוח שיוצרות עומס אין מספיק מעבד (CPU) בעצמן.

בדיקות מדרגיות

בדיקת יכולת ההתאמה לעומס היא היבט נוסף של בדיקת ביצועים. יכולת התאמה לעומס מתייחסת לשינוי במדדי הביצועים כתוצאה משינוי במאפיין אחד של עומס העבודה. דוגמאות למחקרים בנושא יכולת הרחבה:

  • איך הגדלה של מספר הבקשות המקבילות משנה את התפוקה ואת זמני התגובה?
  • איך הגדלת מסד הנתונים משפיעה על קצב העברת הנתונים וזמני התגובה?

בדיקות של יכולת התאמה לעומס כוללות כמה הרצות של עומס עבודה, שבהן מאפיין אחד משתנה בין ההרצות, ונאספים ומשורטטים מדד אחד או יותר. הבדיקות האלה עוזרות לקבל החלטות לגבי צווארי בקבוק שקיימים במערכת, עומס העבודה שהמערכת יכולה לטפל בו בהינתן הגדרה ספציפית, עומס העבודה המקסימלי שהמערכת יכולה לתמוך בו וההתנהגות של המערכת כשהעומס גדל מעבר לרמות האלה.

שיקולים לגבי גודל המכונה

‫AlloyDB Omni כולל הרבה תכונות חדשות ל-Postgres כדי לשפר את המהימנות והזמינות של מסד הנתונים. המעקב שנדרש לצורך כך משתמש במשאבים במכונה שבה פועל AlloyDB Omni. במכונות קטנות מאוד יש משאבי זיכרון ומעבד (CPU) מוגבלים מלכתחילה, ולכן מומלץ להשתמש במכונות עם ארבעה מעבדי vCPU לפחות לצורך השוואה.