בדף הזה מובאת סקירה כללית על התכונה 'התאמה אוטומטית של autovacuum' ב-AlloyDB ל-PostgreSQL, ומוסבר איך להגדיר אותה.
הפעולה Vacuuming היא פעולה חשובה לתחזוקה של מסד נתונים ב-PostgreSQL. היא משמשת כדי לפנות מקום אחסון שנמצא בשימוש של שורות מעודכנות או שנמחקו, וכדי למנוע ניפוח של טבלה או אינדקס. היא משמשת גם להקפאת מזהי עסקאות כדי למנוע גלישת מזהי עסקאות ולעדכון הסטטיסטיקה של הטבלה.
מידע נוסף על פעולת ה-vacuuming מופיע במאמר Routine vacuuming.
כדי להפוך את תהליך ה-vacuuming לאוטומטי ולעדכן את נתוני הטבלה באופן קולקטיבי, AlloyDB תומך ב-adaptive autovacuum. התכונה הזו מאפשרת התאמה אוטומטית של עומס העבודה של ה-vacuuming כשעומס העבודה משתנה, מסירה טופלים לא פעילים ומעדכנת את נתוני הטבלה.
התכונה Autovacuum מבטיחה ביצועים אמינים ועקביים של עסקאות באפליקציה, ושומרת על זמינות גבוהה של המערכת על ידי מניעת גלישת מזהה העסקה.
כברירת מחדל, ב-AlloyDB מופעלת תכונת הניקוי האוטומטי (autovacuum) האדפטיבית. אפשר להשבית או לשנות את הניקוי האוטומטי האדפטיבי ב-AlloyDB באמצעות דגלים של מסד הנתונים.
יתרונות
היתרונות של התכונה 'התאמה אוטומטית של ניקוי אוטומטי':
כוונון אוטומטי של משאבים. AlloyDB משנה באופן אוטומטי את המשאבים, כמו CPU, קלט/פלט, מספר תהליכי ה-vacuum והזיכרון לתהליך ה-vacuum, בהתאם לסטטוס בזמן אמת של עומס העבודה והמשאבים הזמינים, בלי להשפיע על ביצועי המערכת.
מניעת גלישת מזהה עסקה. AlloyDB עוקב אחרי התקדמות ה-vacuum ומהירות הצריכה של מזהה העסקה. כשצריך, AlloyDB מגביל את הצריכה של מזהה העסקה על ידי ביצוע vacuum לכל טבלה במסד הנתונים, וכך מונע גלישת מזהה עסקה.
ניקוי תקופתי של טבלאות. מערכת AlloyDB מפעילה את הפקודה autovacuum על סמך מספר הטופלים הלא פעילים והדפים שצריך לסרוק. הוא מסיר בזמן טאפלים לא פעילים כדי למנוע ניפוח של טבלה או אינדקס.
זיהוי אוטומטי של חסימות. AlloyDB מזהה באופן אוטומטי חסימות כמו טרנזקציות שפועלות במשך זמן רב, טרנזקציות מוכנות יתומות, משבצות שכפול יתומות ומציג הודעות אזהרה דומות לאלה ביומן
postgres:Found a backend process PROCESS_ID with a long running transaction whose transaction id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
הגדרת ניקוי אוטומטי מותאם
כברירת מחדל, התכונה adaptive autovacuum מופעלת ב-AlloyDB. כדי להשבית את התכונה 'ניקוי אוטומטי אדפטיבי', צריך להגדיר את דגל מסד הנתונים enable_google_adaptive_autovacuum של המכונה לערך off.
מידע נוסף על הגדרת דגלים של מסד נתונים מופיע במאמר הגדרת דגלים של מסד נתונים במופע.
AlloyDB תומך בכמה דגלים סטנדרטיים של מסד נתונים PostgreSQL שקשורים ל-vacuum ול-autovacuum, למשל vacuum_cost_delay ו-autovacuum_vacuum_cost_delay.
כדי להשתמש ב-adaptive autovacuum, לא צריך להגדיר ערכים באף אחד מהדגלים האלה, כי המערכת מתאימה את ההתנהגות שלה ומבצעת אופטימיזציה בהתאם לעומסי העבודה האמיתיים שלכם.
אם מגדירים ערכים בדגלים האלה, המערכת האוטומטית של autovacuum מתאימה את ההתנהגות שלה כדי להתחשב בהעדפות שלכם.
כדי לראות את הרשימה המלאה של דגלים נתמכים של מסד נתונים PostgreSQL שקשורים ל-vacuum ול-autovacuum, אפשר לעיין בדגלי vacuum ובדגלי autovacuum.