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

בחירת גרסת תיעוד:

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

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

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

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

הפעלת מטמון דיסק ב-AlloyDB Omni

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

  1. הקצאת דיסקים ויצירת מערכת קבצים
  2. הפעלת מטמון דיסק ב-AlloyDB Omni

הקצאת דיסקים ויצירת מערכת קבצים

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

בשלבים הבאים מוסבר איך להשתמש ב-lvm וב-ext4 באמצעות NVMe SSD.

  1. כדי ליצור קבוצת עוצמת קול מכל המכשירים הפיזיים הזמינים:

    nvme_prefix="STORAGE_PREFIX"
    nvme_list=$(ls "$nvme_prefix"*)
    sudo vgcreate VOLUME_GROUP ${nvme_list}

    מחליפים את מה שכתוב בשדות הבאים:

    • STORAGE_PREFIX: הקידומת של הנתיב של הדיסקים המקומיים של היעד שמצורפים למכונה וירטואלית באמצעות ממשק NVMe (זיכרון מהיר לא נדיף) – לדוגמה, ב- Google Cloud, הנתיבים של מכשירי NVMe תמיד מתחילים ב-/dev/nvme0n.
    • VOLUME_GROUP: השם של קבוצת נפחים שבה משולבים כונני ה-SSD שלכם, לדוגמה, omni-disk-cache-volume.
  2. כדי ליצור נפח לוגי מהקיבולת הפנויה של קבוצת הנפחים מהשלב הקודם, משתמשים בפקודה הבאה:

    sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP

    מחליפים את LOGICAL_VOLUME בשם של נפח לוגי שמערכת ה-LVM מתייחסת אליו כמחיצה – לדוגמה, omni_disk_cache_device.

  3. יוצרים את מערכת הקבצים ext4 בווליום הלוגי. אם צריך, אפשר לציין אפשרויות אחרות של ext4 בהתאם לאבטחת הנתונים.
    sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
  4. כדי ליצור ספרייה שתשמש כנקודת טעינה במחשב המארח ולטעון את מערכת הקבצים, משתמשים בפקודה הבאה:

    sudo mkdir /OMNI_DISK_CACHE_DIRECTORY
    sudo mount /dev/VOLUME_GROUP/LOGICAL_VOLUME /OMNI_DISK_CACHE_DIRECTORY

    מחליפים את OMNI_DISK_CACHE_DIRECTORY בשם של הספרייה או בנתיב לספרייה שמשמשת כנקודת צירוף (mount point) – לדוגמה, omni_disk_cache_directory.

מתן הרשאות לספריית המטמון של הדיסק

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

sudo chown postgres:postgres /OMNI_DISK_CACHE_DIRECTORY
sudo chmod -R a+rw  /OMNI_DISK_CACHE_DIRECTORY

מחליפים את OMNI_DISK_CACHE_DIRECTORY בנתיב לספריית מטמון הדיסק.

הפעלת מטמון בדיסק

כדי להפעיל שמירת נתונים במטמון בדיסק עבור מסד הנתונים:

  1. מתחברים למסד הנתונים בתור SUPERUSER.

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres
  2. מגדירים את הדגלים omni_disk_cache_enabled ו-omni_disk_cache_directory של Grand Unified Configuration (GUC).

    ALTER SYSTEM SET omni_disk_cache_enabled=on;
    ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';
    
  3. (אופציונלי) כברירת מחדל, AlloyDB Omni משתמש בכל השטח הזמין במערכת הקבצים. במקרה הצורך, אפשר לשנות את ברירת המחדל הזו על ידי עדכון הדגל omni_disk_cache_file_size GUC.

    ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;
    

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

  4. מפעילים מחדש את AlloyDB Omni.

    sudo systemctl restart alloydbomni18

אימות ההגדרה של מטמון הדיסק

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

בנוסף, אפשר לבדוק אם מטמון הדיסק של AlloyDB Omni פתוח.

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

sudo journalctl -u alloydbomni18 | grep "opened omni disk cache"

אם השמירה במטמון של הדיסק מוגדרת בצורה נכונה, ההודעה Successfully opened omni disk cache ... מוצגת ביומנים.

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