בדף הזה מובאת סקירה כללית על התכונה 'התאמה אוטומטית של autovacuum' ב-AlloyDB ל-PostgreSQL, ומוסבר איך להגדיר אותה.
Vacuuming היא פעולת תחזוקה חשובה במסד נתונים של PostgreSQL. היא משמשת כדי לפנות מקום באחסון שתופסות שורות מעודכנות או שנמחקו, כדי למנוע ניפוח של הטבלה או האינדקס. הוא משמש גם להקפאת מזהי עסקאות כדי למנוע מצב של חזרה למזהה עסקה קודם ולעדכון הנתונים הסטטיסטיים של הטבלה.
מידע נוסף על ניקוי מופיע במאמר ניקוי שגרתי.
כדי לבצע אוטומציה של תהליך ה-vacuuming ועדכון נתוני הטבלה באופן קולקטיבי, AlloyDB תומך ב-autovacuum אדפטיבי. Adaptive autovacuum מאפשרת כוונון אוטומטי של עומס העבודה של ה-vacuum כשעומס העבודה משתנה, מסירה טאפלים לא פעילים ומעדכנת את נתוני הטבלה.
התכונה Autovacuum מבטיחה ביצועים אמינים ועקביים של עסקאות באפליקציה, ושומרת על זמינות גבוהה של המערכת על ידי מניעת מצב של חזרה למספרים קודמים במזהי העסקאות.
כברירת מחדל, ב-AlloyDB מופעלת התכונה 'ריקון אוטומטי אדפטיבי'. אפשר להשבית או לשנות את הניקוי האוטומטי האדפטיבי ב-AlloyDB באמצעות שימוש בדגלים של מסד הנתונים.
יתרונות
היתרונות של התכונה 'ניקוי אוטומטי אדפטיבי':
כוונון אוטומטי של משאבים. AlloyDB משנה באופן אוטומטי את המשאבים, כמו CPU, קלט/פלט, מספר תהליכי ה-vacuum והזיכרון לתהליך ה-vacuum, בהתאם לסטטוס בזמן אמת של עומס העבודה והמשאבים הזמינים, בלי להשפיע על ביצועי המערכת.
מניעה של חזרה למספרים נמוכים במזהי עסקאות. AlloyDB עוקב אחרי ההתקדמות של vacuum ומהירות הצריכה של מזהה העסקה. במקרה הצורך, AlloyDB מגביל את השימוש במזהי עסקאות על ידי ביצוע פעולת vacuum לכל טבלה במסד הנתונים, כדי למנוע מצב של wraparound של מזהי עסקאות.
שאיבת אבק תקופתית לטבלאות. 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, כי הוא מתאים את ההתנהגות שלו לעומסי העבודה האמיתיים שלכם ומבצע אופטימיזציה שלה.
אם מגדירים ערכים בדגלים האלה, המערכת של adaptive autovacuum משנה את ההתנהגות שלה כדי להתחשב בהעדפות שלכם.
כדי לראות את הרשימה המלאה של דגלי מסד הנתונים של PostgreSQL שקשורים ל-vacuum ול-autovacuum, אפשר לעיין בדגלי vacuum ובדגלי autovacuum.