התאמה אישית של ההתקנה של AlloyDB Omni

בוחרים גרסה של התיעוד:

‫AlloyDB Omni נפרס באמצעות קובץ אימג' של Docker, שמאפשר התאמה אישית בצורות שונות. בדף הזה מוצגים כמה מההתאמות האישיות הנפוצות.

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

לפני שמתחילים

בטבלה הבאה מפורטת הגדרת החומרה והתוכנה המומלצת ל-AlloyDB Omni.

מערכת הפעלה/פלטפורמה הגדרת חומרה מומלצת הגדרת תוכנה מומלצת
Linux
  • מעבד x86-64 או Arm (*) עם תמיכה ב-AVX2
  • זיכרון RAM בנפח 8GB לכל מעבד שהוקצה ל-AlloyDB Omni
  • נפח אחסון של 20GB ומעלה
  • מערכת הפעלה מבוססת Debian (Ubuntu וכו') או RHEL 9
  • ליבת Linux בגרסה 6.1 ואילך, או כל ליבת Linux בגרסה ישנה יותר מ-5.3 עם תמיכה בהנחיות MADV_COLLAPSE ו-MADV_POPULATE_WRITE
  • ‫Cgroupsv2 מופעל
  • ‫Docker Engine מגרסה 25.0.0 ואילך או Podman מגרסה 5.0.0 ואילך
  • macOS
  • מעבד Intel עם תמיכה ב-AVX2 או שבב M
  • זיכרון RAM בנפח 8GB לכל מעבד שהוקצה ל-AlloyDB Omni
  • נפח אחסון של 20GB ומעלה
  • ‫Docker Desktop מגרסה 4.30 ואילך
  • ‫(*) התמיכה ב-Arm היא בגרסת Preview.

    ‫AlloyDB Omni פועל בקונטיינר. לפני שמתקינים את AlloyDB Omni, צריך להתקין במחשב זמן ריצה של קונטיינר כמו Docker או Podman.

    פקודות Podman מסופקות לקונטיינר ללא הרשאות רוט שפועל ב-Security-Enhanced Linux ‏ (SELinux) מושבת.

    שרת יחיד

    טעינה של ספריית נתונים חיצונית

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

    Docker

    docker run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

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

    • CONTAINER_NAME: השם שיוקצה למאגר החדש של AlloyDB Omni במאגר התמונות של המכונה המארחת – לדוגמה, my-omni.

    • NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.

    • DATA_DIR: הנתיב במערכת הקבצים שרוצים ש-AlloyDB Omni ישתמש בו לספריית הנתונים שלו.

    • HOST_PORT: יציאת ה-TCP במחשב המארח שאליה הקונטיינר מפרסם את יציאה 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במחשב המארח, מציינים 5432.

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

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

    • CONTAINER_NAME: השם שיוקצה למאגר החדש של AlloyDB Omni במאגר התמונות של המכונה המארחת – לדוגמה, my-omni.

    • NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.

    • DATA_DIR: הנתיב במערכת הקבצים שרוצים ש-AlloyDB Omni ישתמש בו לספריית הנתונים שלו.

    • HOST_PORT: יציאת ה-TCP במחשב המארח שאליה הקונטיינר מפרסם את יציאה 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במחשב המארח, מציינים 5432.

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

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

    • CONTAINER_NAME: השם שיוקצה למאגר החדש של AlloyDB Omni במאגר התמונות של המכונה המארחת – לדוגמה, my-omni.

    • NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.

    • DATA_DIR: הנתיב במערכת הקבצים שרוצים ש-AlloyDB Omni ישתמש בו לספריית הנתונים שלו.

    • HOST_PORT: יציאת ה-TCP במחשב המארח שאליה הקונטיינר מפרסם את יציאה 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במחשב המארח, מציינים 5432.

    הפעלת ulimits

    הפרמטרים של ulimit מציינים מגבלות על תהליכים שקונטיינר Docker יכול להשתמש בהן. כדי להשיג ביצועים אופטימליים, מומלץ להגדיר את הערכים הבאים של ulimits:

    • nice=-20:-20: AlloyDB Omni משנה את סדרי העדיפויות של התהליכים כדי לאפשר לתהליכים קריטיים של PostgreSQL לפעול עם עדיפות גבוהה יותר. העדיפות הגבוהה יותר מאפשרת לתהליכים לקבל הקצאה גדולה יותר של מעבדי CPU זמינים. כדי לשנות את העדיפות של התהליך, מציינים --ulimit=nice=-20:-20, שמסיר את המגבלות על קונטיינר AlloyDB Omni.

    • memlock=-1:-1: ‏ AlloyDB Omni מבצע ניהול זיכרון אוטומטי. ההגדרה --ulimit=memlock=-1:-1 מאפשרת למסד הנתונים לשלוט טוב יותר באופן ההחלפה של דפי הזיכרון, מה שיכול לשפר את הביצועים.

    Docker

    docker run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    ציון מנהל התקן לרישום ביומן

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

    Docker

    docker run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --log-driver=journald \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --log-driver=journald \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    מידע נוסף על Docker ועל מנהלי התקנים של רישום ביומן זמין במסמכי העזרה של Docker בנושא הגדרה של מנהלי התקנים של רישום ביומן.

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

    צירוף של נפח זיכרון משותף

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

    Linux

    כדי להפוך את הזיכרון המשותף לזמין למאגר, צריך להפעיל את הפקודה /dev/shm:

    Docker

      docker run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        -v /dev/shm:/dev/shm \
        -d google/alloydbomni:15.5.5

    Podman

      podman run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        -v /dev/shm:/dev/shm \
        -d google/alloydbomni:15.5.5

    macOS

    כדי להפוך את הזיכרון המשותף לזמין לקונטיינר, צריך לכלול את הדגל --shm-size:

    Docker

      docker run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        --shm-size=SHARED_MEMORY_SIZE \
        -d google/alloydbomni:15.5.5

    מחליפים את SHARED_MEMORY_SIZE בגודל שרוצים להגדיר ל-/dev/shm במאגר, בפורמט שמתואר במאמר בנושא הרצת קונטיינרים. לדוגמה, כדי לציין גיגה-בייט אחד, משתמשים בערך 1g.

    Podman

      podman run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        --shm-size=SHARED_MEMORY_SIZE \
        -d google/alloydbomni:15.5.5

    מחליפים את SHARED_MEMORY_SIZE בגודל שרוצים להגדיר ל-/dev/shm במאגר, בפורמט שמתואר במאמר בנושא הרצת קונטיינרים. לדוגמה, כדי לציין גיגה-בייט אחד, משתמשים בערך 1g.

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

    לדוגמה, אם הדגל google_job_scheduler.max_parallel_workers_per_job של מסד הנתונים מוגדר לערך ברירת המחדל שלו 2, כדאי להוסיף דגל של --shm-size=500m או יותר כשמפעילים את שרת מסד הנתונים.

    מידע נוסף על הדגל --shm-size זמין במאמר הרצת קונטיינרים.