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

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

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

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

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

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

מערכת הפעלה/פלטפורמה הגדרת חומרה מומלצת הגדרת תוכנה מומלצת
Linux
  • מעבד x86-64 או Arm (*) עם תמיכה ב-AVX2
  • זיכרון RAM בנפח 8GB לכל מעבד (CPU) שמוקצה ל-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 לכל מעבד (CPU) שמוקצה ל-AlloyDB Omni
  • מקום בכונן בנפח 20GB ומעלה
  • ‫Docker Desktop מגרסה 4.30 ואילך
  • ‫(*) התמיכה ב-Arm היא בגרסת Preview.

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

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

    שרת יחיד

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

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

    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 ב-Container Registry של המכונה המארחת – לדוגמה, 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 ב-Container Registry של המכונה המארחת – לדוגמה, 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 ב-Container Registry של המכונה המארחת – לדוגמה, my-omni.

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

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

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

    הפעלת ulimits

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

    • ‫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 ומנהלי התקנים של רישום ביומן זמין במאמר Configure logging drivers (הגדרת מנהלי התקנים של רישום ביומן) במסמכי העזרה של 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 זמין במאמר הרצת קונטיינרים.