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

כברירת מחדל, הפרמטר shared_buffers מוגדר לערך 0, שהוא ערך מיוחד שמגדיר את הגבול העליון של גודל המטמון של shared buffers ל-80% מזיכרון המערכת. השימוש ב-AlloyDB Omni מתחיל ב-10% מהתקרה של shared_buffers. אם הערך של shared_buffers מוחלף בערך מותאם אישית, AlloyDB Omni מתייחס לערך הזה כגבול העליון של הגודל של shared_buffers, ומתחיל בגודל המותאם אישית שצוין.
כדי לציין גודל מותאם אישית, אפשר להגדיר את shared_buffers לערך 1GB. השיטה תלויה בסוג הפריסה:
shared_buffers באחת מהשיטות הבאות. אחרי שמבצעים את השינוי, צריך להפעיל מחדש את השירות.
אפשרות 1: עריכת קובץ התצורה
פותחים את הקובץ
postgresql.confלעריכה.מוסיפים או משנים את השורה הבאה:
shared_buffers = 1GBשומרים את הקובץ ומפעילים מחדש את שירות AlloyDB Omni:
sudo systemctl restart alloydbomniMAJOR_VERSIONמחליפים את
MAJOR_VERSIONבגרסה הראשית של התקנת AlloyDB Omni, למשל18.
אפשרות 2: שימוש בפקודה
ALTER SYSTEMמתחברים למכונת מסד הנתונים באמצעות לקוח SQL.
מריצים את הפקודה הבאה:
ALTER SYSTEM SET shared_buffers = '1GB';מפעילים מחדש את שירות AlloyDB Omni:
sudo systemctl restart alloydbomniMAJOR_VERSIONמחליפים את
MAJOR_VERSIONבגרסה הראשית של התקנת AlloyDB Omni, למשל18.
אופטימיזציה של ביצועי השאילתות
ערך ברירת המחדל של הפרמטר shared_buffers מתאים לתרחישים נפוצים.
עם זאת, אתם יכולים לשנות את הערך כדי לשפר את הביצועים.
אם תבחרו להסתמך על ערך ברירת המחדל shared_buffers כדי להסיק את הגבול העליון של מאגר הנתונים הזמני המשותף, תצטרכו להשתמש בערך של cgroup memory.max כדי להשפיע על החישוב.
זיכרון של מנוע מבוסס-עמודות
הזיכרון הדינמי של shared_buffers הוא נפרד מהזיכרון של מנוע מבוסס-עמודות. כשהמנוע מבוסס-העמודות מופעל, אפשר לחשב את הגודל הדינמי של shared_buffers על ידי הפחתת כמות הזיכרון שבה משתמש המנוע מבוסס-העמודות מ-80% מסך הזיכרון שזמין למערכת או ל-cgroup.
דפים ענקיים
דפים גדולים משפרים את הביצועים של מסד הנתונים. AlloyDB Omni מנהל דפים ענקיים באופן מפורש אם אפשר, אחרת הוא מסתמך על התכונה "דפים ענקיים שקופים" (THP) של מערכת ההפעלה. אם אף אחד מסוגי הדפים הענקיים לא נתמך, AlloyDB Omni חוזר לדף 4k ומדפיס אזהרה ביומני מסד הנתונים עם הוראות ספציפיות להגדרת דפים ענקיים.האזהרה תיראה כך:
HINT: Please manually execute:
echo within_size | sudo tee /sys/kernel/mm/transparent_hugepage/shmem_enabled
sudo sysctl -w vm.nr_overcommit_hugepages="$(/usr/bin/awk '/MemTotal/ { printf "%.0f", $2/1024 }' /proc/meminfo)"
ניהול זיכרון אוטומטי בזמן ריצה
AlloyDB Omni עוקב כל הזמן אחרי העומס על המערכת ומתאים את צריכת הזיכרון כדי לשפר את הביצועים. באופן ספציפי, יכול להיות שתבחינו במצבים הבאים:
- שינוי דינמי של גודל
shared_buffers
- AlloyDB Omni מגדיל את הנפח הדינמי של
shared_buffersכשצריכת הזיכרון של המערכת נמוכה, ומקטין את הנפח כשצריכת הזיכרון של המערכת גבוהה. התוסף `g_memory` כלול בהפצה של AlloyDB Omni. כדי להפעיל את האפשרות הזו ולעקוב אחרי הגודל הדינמי של shared_buffers, מריצים את הפקודות הבאות:CREATE EXTENSION IF NOT EXISTS g_memory; SELECT g_dynamic_shared_size();
- סגירת חיבור ל-PostgreSQL כשהזיכרון במערכת נמוך מאוד
-
כש-AlloyDB Omni מזהה שכמות הזיכרון במערכת נמוכה מאוד, הוא מנסה למחוק את החיבורים ל-PostgreSQL שצורכים הכי הרבה זיכרון, עד שהעומס חוזר לרמה סבירה. כשאירוע כזה קורה, AlloyDB Omni רושם רשומה דומה לדוגמה הבאה ביומני מסד הנתונים:
WARNING: Sending SIGTERM to pid=12345 NSpid=67890 (VA size = 1024MB) (RSS size = 512MB)