Personalizar a instalação do AlloyDB Omni

Selecione uma versão da documentação:

O AlloyDB Omni é implantado por uma imagem Docker, o que permite diferentes formas de personalização. Esta página mostra algumas das personalizações comuns usadas.

Para começar a usar o AlloyDB Omni rapidamente com a configuração padrão, consulte o Guia de início rápido: AlloyDB Omni.

Antes de começar

A tabela a seguir lista a configuração recomendada de hardware e software para o AlloyDB Omni.

SO/plataforma Configuração de hardware recomendada Configuração de software recomendada
Linux
  • CPU x86-64 ou Arm (*) com suporte a AVX2
  • 8 GB de RAM para cada CPU alocada no AlloyDB Omni
  • 20 GB ou mais de espaço em disco
  • SO baseado em Debian (Ubuntu etc.) ou RHEL 9
  • Versão 6.1 ou mais recente do kernel do Linux ou qualquer versão anterior à 5.3 que tenha suporte às diretivas MADV_COLLAPSE e MADV_POPULATE_WRITE
  • Cgroupsv2 ativado
  • Docker Engine 25.0.0 ou mais recente ou Podman 5.0.0 ou mais recente
  • macOS
  • CPU Intel com suporte a AVX2 ou chip M
  • 8 GB de RAM para cada CPU alocada no AlloyDB Omni
  • 20 GB ou mais de espaço em disco
  • Docker Desktop 4.30 ou mais recente
  • (*) O suporte ao Arm está em Pré-lançamento.

    O AlloyDB Omni é executado em um contêiner. Instale um ambiente de execução de contêineres, como Docker ou Podman, na sua máquina antes de instalar o AlloyDB Omni.

    Os comandos do Podman são fornecidos para um contêiner sem raiz executado em um Security-Enhanced Linux (SELinux) desativado.

    Servidor único

    Montar um diretório de dados externo

    Por padrão, o comando no Guia de início rápido: instalar o AlloyDB Omni armazena os dados do banco de dados em uma área gerenciada pelo Docker. Isso é conveniente para começar, mas dificulta a localização e o uso do diretório de dados. Em vez disso, configure uma vinculação de montagem para mapear o diretório de dados para um local conhecido no 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

    Substitua:

    • CONTAINER_NAME: o nome a ser atribuído a esse novo contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo, my-omni.

    • NEW_PASSWORD: a senha atribuída ao usuário postgres do novo contêiner após a criação.

    • DATA_DIR: o caminho do sistema de arquivos que você quer que o AlloyDB Omni use para o diretório de dados.

    • HOST_PORT: a porta TCP na máquina host em que o contêiner publica a porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 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

    Substitua:

    • CONTAINER_NAME: o nome a ser atribuído a esse novo contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo, my-omni.

    • NEW_PASSWORD: a senha atribuída ao usuário postgres do novo contêiner após a criação.

    • DATA_DIR: o caminho do sistema de arquivos que você quer que o AlloyDB Omni use para o diretório de dados.

    • HOST_PORT: a porta TCP na máquina host em que o contêiner publica a porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 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

    Substitua:

    • CONTAINER_NAME: o nome a ser atribuído a esse novo contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo, my-omni.

    • NEW_PASSWORD: a senha atribuída ao usuário postgres do novo contêiner após a criação.

    • DATA_DIR: o caminho do sistema de arquivos que você quer que o AlloyDB Omni use para o diretório de dados.

    • HOST_PORT: a porta TCP na máquina host em que o contêiner publica a porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 5432.

    Ativar ulimits

    Os parâmetros ulimit especificam limites de processo que o contêiner do Docker pode usar. Para um desempenho ideal, recomendamos que você defina os seguintes ulimits:

    • nice=-20:-20: o AlloyDB Omni ajusta as prioridades do processo para permitir que processos críticos do PostgreSQL sejam executados com maior prioridade. A prioridade mais alta dá aos processos uma alocação maior de CPUs disponíveis. Para ajustar as prioridades do processo, especifique --ulimit=nice=-20:-20, que remove as limitações do contêiner do AlloyDB Omni.

    • memlock=-1:-1: o AlloyDB Omni realiza o gerenciamento automático de memória. A definição de --ulimit=memlock=-1:-1 permite que o banco de dados controle melhor como as páginas de memória são trocadas, o que pode resultar em uma performance melhor.

    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

    Especificar um driver de registro

    Por padrão, o Docker não faz rotações de registros. Isso pode consumir muito espaço em disco e, eventualmente, levar ao esgotamento do espaço. É possível configurar o Docker para usar um driver de geração de registros diferente. Por exemplo, para registrar no 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

    Para mais informações sobre o Docker e drivers de geração de registros, consulte a documentação do Docker Configurar drivers de geração de registros.

    Também é possível configurar o registro em log usando o PostgreSQL. Para mais informações, consulte a documentação do PostgreSQL Relatórios e geração de registros de erros (em inglês).

    Montar um volume de memória compartilhada

    Se você planeja usar o mecanismo colunar do AlloyDB com o AlloyDB Omni, recomendamos disponibilizar a memória compartilhada para o contêiner do AlloyDB Omni. O método para fazer isso varia de acordo com o sistema operacional do host, conforme mostrado nos exemplos a seguir.

    Linux

    Para disponibilizar a memória compartilhada ao contêiner, monte /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

    Para disponibilizar a memória compartilhada ao contêiner, inclua a 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

    Substitua SHARED_MEMORY_SIZE pelo tamanho a ser definido para /dev/shm no contêiner, no formato descrito em Execução de contêineres. Por exemplo, para especificar um gigabyte, use o valor 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

    Substitua SHARED_MEMORY_SIZE pelo tamanho a ser definido para /dev/shm no contêiner, no formato descrito em Execução de contêineres. Por exemplo, para especificar um gigabyte, use o valor 1g.

    Recomendamos definir o tamanho da memória compartilhada como um número de megabytes igual a pelo menos o valor da flag google_job_scheduler.max_parallel_workers_per_job do banco de dados, multiplicado por 250. Para mais informações sobre o mecanismo colunar, consulte Configurar o mecanismo colunar no AlloyDB Omni.

    Por exemplo, se a flag google_job_scheduler.max_parallel_workers_per_job do banco de dados estiver definida como o valor padrão 2, considere adicionar uma flag de --shm-size=500m ou maior ao iniciar o servidor de banco de dados.

    Para mais informações sobre a flag --shm-size, consulte Executar contêineres.