Personalizzare l'installazione di AlloyDB Omni

Seleziona una versione della documentazione:

AlloyDB Omni viene implementato tramite un'immagine Docker, che consente diverse forme di personalizzazione. Questa pagina mostra alcune delle personalizzazioni comuni utilizzate.

Per iniziare rapidamente con AlloyDB Omni utilizzando la configurazione predefinita, consulta Guida rapida: AlloyDB Omni.

Prima di iniziare

La tabella seguente elenca la configurazione hardware e software consigliata per AlloyDB Omni.

Sistema operativo/piattaforma Configurazione hardware consigliata Configurazione software consigliata
Linux
  • CPU x86-64 o Arm (*) con supporto AVX2
  • 8 GB di RAM per ogni CPU allocata ad AlloyDB Omni
  • Almeno 20 GB di spazio su disco
  • Sistema operativo basato su Debian (Ubuntu e così via) o RHEL 9
  • Kernel Linux versione 6.1 o successive o qualsiasi kernel Linux precedente alla versione 5.3 che supporti le direttive MADV_COLLAPSE e MADV_POPULATE_WRITE
  • Cgroupsv2 abilitato
  • Docker Engine 25.0.0+ o Podman 5.0.0+
  • macOS
  • CPU Intel con supporto AVX2 o chip M
  • 8 GB di RAM per ogni CPU allocata ad AlloyDB Omni
  • Almeno 20 GB di spazio su disco
  • Docker Desktop 4.30 o versioni successive
  • (*) Il supporto di ARM è in anteprima.

    AlloyDB Omni viene eseguito in un container. Installa un runtime del container come Docker o Podman sulla tua macchina prima di installare AlloyDB Omni.

    I comandi Podman vengono forniti per un contenitore rootless in esecuzione su Security-Enhanced Linux (SELinux) disattivato.

    A un solo server

    Montare una directory di dati esterna

    Per impostazione predefinita, il comando nella Guida rapida: installa AlloyDB Omni archivia i dati del database in un'area gestita da Docker. Questa impostazione è comoda per iniziare, ma rende difficile trovare e utilizzare la directory dei dati. Puoi invece configurare un montaggio bind per mappare la directory dei dati a una posizione nota sul disco.

    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

    Sostituisci quanto segue:

    • CONTAINER_NAME: il nome da assegnare a questo nuovo contenitore AlloyDB Omni nel registro dei contenitori della macchina host, ad esempio my-omni.

    • NEW_PASSWORD: la password assegnata all'utente postgres del nuovo contenitore dopo la sua creazione.

    • DATA_DIR: il percorso del file system che vuoi che AlloyDB Omni utilizzi per la directory dei dati.

    • HOST_PORT: la porta TCP sulla macchina host a cui il container pubblica la porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 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

    Sostituisci quanto segue:

    • CONTAINER_NAME: il nome da assegnare a questo nuovo contenitore AlloyDB Omni nel registro dei contenitori della macchina host, ad esempio my-omni.

    • NEW_PASSWORD: la password assegnata all'utente postgres del nuovo contenitore dopo la sua creazione.

    • DATA_DIR: il percorso del file system che vuoi che AlloyDB Omni utilizzi per la directory dei dati.

    • HOST_PORT: la porta TCP sulla macchina host a cui il container pubblica la porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 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

    Sostituisci quanto segue:

    • CONTAINER_NAME: il nome da assegnare a questo nuovo contenitore AlloyDB Omni nel registro dei contenitori della macchina host, ad esempio my-omni.

    • NEW_PASSWORD: la password assegnata all'utente postgres del nuovo contenitore dopo la sua creazione.

    • DATA_DIR: il percorso del file system che vuoi che AlloyDB Omni utilizzi per la directory dei dati.

    • HOST_PORT: la porta TCP sulla macchina host a cui il container pubblica la porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

    Abilita ulimit

    I parametri ulimit specificano i limiti di processo che il container Docker può utilizzare. Per prestazioni ottimali, ti consigliamo di impostare i seguenti limiti:

    • nice=-20:-20: AlloyDB Omni regola le priorità dei processi per consentire l'esecuzione dei processi PostgreSQL critici con una priorità più alta. La priorità più alta assegna ai processi una maggiore allocazione delle CPU disponibili. Per modificare le priorità dei processi, specifica --ulimit=nice=-20:-20, che rimuove le limitazioni per il container AlloyDB Omni.

    • memlock=-1:-1: AlloyDB Omni esegue la gestione automatica della memoria. L'impostazione di --ulimit=memlock=-1:-1 consente al database di controllare meglio la modalità di scambio delle pagine di memoria, il che può comportare un miglioramento delle prestazioni.

    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

    Specifica un driver di logging

    Per impostazione predefinita, Docker non esegue la rotazione dei log. Questa operazione può utilizzare una grande quantità di spazio su disco e alla fine portare all'esaurimento dello spazio su disco. Puoi configurare Docker per utilizzare un driver di logging diverso. Ad esempio, per registrare i log in 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

    Per ulteriori informazioni su Docker e sui driver di logging, consulta la documentazione di Docker Configurare i driver di logging.

    Puoi anche configurare la registrazione utilizzando PostgreSQL. Per saperne di più, consulta la documentazione di PostgreSQL Error reporting and logging.

    Montare un volume di memoria condivisa

    Se prevedi di utilizzare il motore colonnare con AlloyDB Omni, ti consigliamo di rendere disponibile la memoria condivisa al container AlloyDB Omni. Il metodo per farlo varia a seconda del sistema operativo host, come mostrato negli esempi seguenti.

    Linux

    Per rendere disponibile la memoria condivisa al container, monta /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

    Per rendere disponibile la memoria condivisa al container, includi il flag --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

    Sostituisci SHARED_MEMORY_SIZE con la dimensione da impostare per /dev/shm sul container, nel formato descritto in Esecuzione di container. Ad esempio, per specificare un gigabyte, utilizza il valore 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

    Sostituisci SHARED_MEMORY_SIZE con la dimensione da impostare per /dev/shm sul container, nel formato descritto in Esecuzione di container. Ad esempio, per specificare un gigabyte, utilizza il valore 1g.

    Ti consigliamo di impostare la dimensione della memoria condivisa su un numero di megabyte pari ad almeno 250 volte il valore del flag google_job_scheduler.max_parallel_workers_per_job del tuo database. Per saperne di più sul motore colonnare, consulta Configurare il motore colonnare in AlloyDB Omni.

    Ad esempio, se il flag di database google_job_scheduler.max_parallel_workers_per_job è impostato sul valore predefinito 2, valuta la possibilità di aggiungere un flag di --shm-size=500m o superiore all'avvio del server di database.

    Per ulteriori informazioni sul flag --shm-size, consulta Esecuzione di container.