Personalize a instalação do AlloyDB Omni

Selecione uma versão da documentação:

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

Para começar rapidamente com o AlloyDB Omni através da configuração predefinida, consulte o Início rápido: AlloyDB Omni.

Antes de começar

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

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

    O AlloyDB Omni é executado num contentor. Instale um tempo de execução de contentores, como o Docker ou o Podman, na sua máquina antes de instalar o AlloyDB Omni.

    Os comandos do Podman são fornecidos para um contentor sem acesso de administrador a ser executado no Security-Enhanced Linux (SELinux) desativado.

    Servidor único

    Monte um diretório de dados externo

    Por predefinição, o comando no Início rápido: instale o AlloyDB Omni armazena os dados da base de dados numa área gerida pelo Docker. Esta opção é conveniente para começar, mas dificulta a localização e a utilização do diretório de dados. Em alternativa, pode configurar uma montagem de ligação para mapear o diretório de dados para uma localização conhecida 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 o seguinte:

    • CONTAINER_NAME: o nome a atribuir a este novo contentor do AlloyDB Omni no registo de contentores da sua máquina anfitriã, por exemplo, my-omni.

    • NEW_PASSWORD: a palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.

    • DATA_DIR: o caminho do sistema de ficheiros que quer que o AlloyDB Omni use para o respetivo diretório de dados.

    • HOST_PORT: a porta TCP na máquina anfitriã para a qual o contentor publica a porta 5432. Para usar também a porta predefinida do PostgreSQL na máquina anfitriã, 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 o seguinte:

    • CONTAINER_NAME: o nome a atribuir a este novo contentor do AlloyDB Omni no registo de contentores da sua máquina anfitriã, por exemplo, my-omni.

    • NEW_PASSWORD: a palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.

    • DATA_DIR: o caminho do sistema de ficheiros que quer que o AlloyDB Omni use para o respetivo diretório de dados.

    • HOST_PORT: a porta TCP na máquina anfitriã para a qual o contentor publica a porta 5432. Para usar também a porta predefinida do PostgreSQL na máquina anfitriã, 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 o seguinte:

    • CONTAINER_NAME: o nome a atribuir a este novo contentor do AlloyDB Omni no registo de contentores da sua máquina anfitriã, por exemplo, my-omni.

    • NEW_PASSWORD: a palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.

    • DATA_DIR: o caminho do sistema de ficheiros que quer que o AlloyDB Omni use para o respetivo diretório de dados.

    • HOST_PORT: a porta TCP na máquina anfitriã para a qual o contentor publica a porta 5432. Para usar também a porta predefinida do PostgreSQL na máquina anfitriã, especifique 5432.

    Ative ulimits

    Os parâmetros ulimit especificam os limites de processos que o contentor Docker pode usar. Para um desempenho ideal, recomendamos que defina os seguintes ulimits:

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

    • memlock=-1:-1: o AlloyDB Omni faz a gestão automática da memória. A definição de --ulimit=memlock=-1:-1 permite que a base de dados controle melhor a forma como as páginas de memória são trocadas, o que pode resultar num melhor desempenho.

    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

    Especifique um controlador de registo

    Por predefinição, o Docker não faz rotações de registos. Esta ação pode consumir muito espaço em disco e, eventualmente, levar à exaustão do espaço em disco. Pode configurar o Docker para usar um controlador de registo diferente. Por exemplo, para registar 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 os controladores de registo, consulte a documentação do Docker Configure logging drivers.

    Também pode configurar o registo através do PostgreSQL. Para mais informações, consulte a documentação do PostgreSQL Relatórios de erros e registo.

    Monte um volume de memória partilhada

    Se planeia usar o motor de colunas do AlloyDB com o AlloyDB Omni, recomendamos que disponibilize memória partilhada ao contentor do AlloyDB Omni. O método para o fazer varia consoante o sistema operativo do anfitrião, conforme mostrado nos exemplos seguintes.

    Linux

    Para disponibilizar a memória partilhada ao contentor, 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 partilhada ao contentor, 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 definir para /dev/shm no contentor, no formato descrito em Executar contentores. 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 definir para /dev/shm no contentor, no formato descrito em Executar contentores. Por exemplo, para especificar um gigabyte, use o valor 1g.

    Recomendamos que defina o tamanho da memória partilhada para um número de megabytes igual a, pelo menos, o valor do seu banco de dados da flag google_job_scheduler.max_parallel_workers_per_job, multiplicado por 250. Para mais informações acerca do motor de colunas, consulte o artigo Configure o motor de colunas no AlloyDB Omni.

    Por exemplo, se a flag google_job_scheduler.max_parallel_workers_per_jobdatabase estiver definida para o valor predefinido de 2, considere adicionar uma flag de --shm-size=500m ou superior ao iniciar o servidor da base de dados.

    Para mais informações sobre a flag --shm-size, consulte o artigo Executar contentores.