Configure o AlloyDB Omni para produção

Selecione uma versão da documentação:

Esta página mostra as definições comuns quando usa o AlloyDB Omni para cargas de trabalho de produção.

Ative as páginas enormes

O AlloyDB Omni, tal como o PostgreSQL, suporta a utilização de páginas grandes. Isto requer que a sua máquina tenha páginas grandes ativadas e também tem de ativar uma definição da base de dados huge_pages.

  1. Execute o script fornecido para ativar as páginas enormes no seu computador:

    Docker

    docker run --rm --privileged google/alloydbomni setup-host
    

    Docker

    docker run --rm --privileged google/alloydbomni setup-host
    

    Podman

    podman run --rm --privileged google/alloydbomni setup-host
    

    Podman

    podman run --rm --privileged google/alloydbomni setup-host
    
  2. Adicione a seguinte linha ao seu postgresql.conf para ativar as páginas enormes:

      huge_pages=on
    

Ative a troca

A troca no sistema operativo permite aumentar a memória física disponível movendo páginas de memória inativas entre a memória de acesso aleatório (RAM) e o disco rígido para libertar espaço na RAM para processos ativos. O AlloyDB Omni usa a troca quando está sob carga elevada e requer memória adicional.

Para verificar a quantidade de espaço de troca ativado no seu sistema, execute o seguinte:

   cat /proc/meminfo | grep SwapTotal

O resultado tem um aspeto semelhante ao seguinte:

   SwapTotal:      165748732 kB

Para ativar a troca no seu sistema operativo se o valor de saída for 0, consulte o seguinte:

Ative os despejos de memória

Se o AlloyDB Omni encontrar um erro irrecuperável e falhar, é útil ter um despejo de memória para análise. Uma captura da área dinâmica para dados é uma imagem instantânea da memória do processo do AlloyDB Omni no momento da falha.

Para configurar descargas de memória, configure kernel.core_pattern da seguinte forma:

  1. Use o comando sysctl para configurar os parâmetros do kernel de tempo de execução.
  2. Para definir o kernel.core_pattern imediatamente, use:

    sysctl -w kernel.core_pattern="CORE_PATTERN"

    Substitua CORE_PATTERN por um padrão de nome de ficheiro principal, como "%e-%t.core".

    Para mais informações sobre os padrões de nomes de ficheiros principais, consulte Como definir o processamento de nomes de ficheiros principais para ver detalhes.

    O gestor systemd-coredump permite uma configuração adicional das definições de coredump. A ferramenta está instalada por predefinição no RHEL. Nos sistemas Debian e Ubuntu, execute sudo apt install coredumpctl para instalar a ferramenta.

    Quando iniciar o AlloyDB Omni, certifique-se de que transmite o argumento --ulimit=core:-1:-1 no comando docker run:

    Docker

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

    Docker

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

    Podman

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

    Podman

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

    Substitua o seguinte:

    • CONTAINER_NAME: o nome de um novo contentor do AlloyDB Omni, por exemplo, my-omni-1.
    • NEW_PASSWORD: a palavra-passe atribuída ao utilizador postgres do novo contentor após a criação da palavra-passe.

Ative o registo interno

O AlloyDB Omni fornece mais mensagens, além dos registos do PostgreSQL normais. Estas mensagens destinam-se ao apoio técnico do AlloyDB for PostgreSQL devido à sua natureza técnica. No entanto, as informações adicionais podem ajudar na depuração de problemas da base de dados.

Para ativar o registo interno, conclua estes passos:

  1. Defina o parâmetro da base de dados enable_alloydb_internal_log como on:

    ALTER SYSTEM SET enable_alloydb_internal_log=on;
    

    Para mais informações sobre como modificar as definições do AlloyDB Omni, consulte o artigo Configure os parâmetros da base de dados do AlloyDB Omni.

  2. Reinicie para aplicar as alterações:

    Docker

    docker restart CONTAINER_NAME
    

    Docker

    docker restart CONTAINER_NAME
    

    Podman

    podman restart CONTAINER_NAME
    

    Podman

    podman restart CONTAINER_NAME
    

Para personalizar o registo interno, como configurar os nomes dos ficheiros de registo e as políticas de rotação, use parâmetros do PostgreSQL.

Por exemplo, o parâmetro log_directory especifica o diretório onde guardar um ficheiro de registo e o parâmetro log_filename define o nome do ficheiro de registo individual.

O AlloyDB Omni combina os parâmetros log_directory e log_filename e guarda os registos internos da seguinte forma:

LOG_DIRECTORY/LOG_FILENAME.internal

Configure unidades systemd para executar operações automaticamente

Se executar o AlloyDB Omni num servidor dedicado, pode querer configurar determinadas operações para serem iniciadas automaticamente quando o servidor é iniciado. Uma forma de o fazer é através de systemd unidades.

Por exemplo, os passos seguintes configuram o systemd para que as páginas grandes sejam ativadas automaticamente sempre que o servidor for iniciado.

  1. Crie um ficheiro em /etc/systemd/system/alloydb-setup-env.service:

    [Unit]
    Description=Setup huge pages for AlloyDB Omni
    
    [Service]
    Type=oneshot
    
    ExecStart=/usr/bin/docker run --rm --privileged google/alloydbomni setup-host
    
    [Install]
    WantedBy=multi-user.target
    
  2. Ative o serviço da seguinte forma:

    sudo systemctl enable alloydb-setup-env.service

O que se segue?