Além dos buffers compartilhados na memória padrão do PostgreSQL, o cache em disco do AlloyDB Omni permite armazenar buffers em armazenamento rápido, como unidades de estado sólido (SSDs). O cache em disco acelera a recuperação de dados em instalações do AlloyDB Omni com diretórios de dados localizados em armazenamento mais lento.
Assim como os buffers compartilhados do PostgreSQL, o cache em disco do AlloyDB Omni não é persistente, o que significa que os dados armazenados em cache são perdidos na reinicialização.
Por padrão, o cache em disco do AlloyDB Omni usa todo o armazenamento informado pelo sistema de arquivos. É possível definir a quantidade de armazenamento reservado para dados de cache usando o parâmetro omni_disk_cache_file_size.
Ativar o cache em disco do AlloyDB Omni
Para ativar o cache em disco, conclua todas as subseções a seguir:
Provisionar discos e criar um sistema de arquivos
Para o cache em disco do AlloyDB Omni, crie um sistema de arquivos em um ou vários discos e ative-o. Além disso, é possível usar utilitários como mdadm ou lvm para agrupar a capacidade usando vários discos e qualquer sistema de arquivos.
As etapas a seguir demonstram o uso de lvm e ext4 usando SSDs NVMe.
Crie um grupo de volumes com todos os dispositivos físicos disponíveis:
nvme_prefix="STORAGE_PREFIX" nvme_list=$(ls "$nvme_prefix"*) sudo vgcreate VOLUME_GROUP ${nvme_list}
Substitua o seguinte:
STORAGE_PREFIX: o prefixo do caminho dos discos locais de destino anexados a uma máquina virtual usando a interface de memória não volátil expressa (NVMe). Por exemplo, no Google Cloud, os caminhos de dispositivos NVMe sempre começam com/dev/nvme0n.VOLUME_GROUP: o nome de um grupo de volumes em que seus SSDs estão combinados. Por exemplo,omni-disk-cache-volume.
-
Para criar um volume lógico com a capacidade livre do grupo de volumes da etapa anterior, use o seguinte comando:
sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP
Substitua
LOGICAL_VOLUMEpelo nome de um volume lógico tratado como uma partição pelo LVM. Por exemplo,omni_disk_cache_device. - Crie o sistema de arquivos
ext4no volume lógico. Se necessário, especifique outras opções deext4sujeitas à segurança dos dados.sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
Para criar um diretório que sirva como ponto de montagem na máquina host e monte o sistema de arquivos, use o seguinte comando:
sudo mkdir /OMNI_DISK_CACHE_DIRECTORY sudo mount /dev/VOLUME_GROUP/LOGICAL_VOLUME /OMNI_DISK_CACHE_DIRECTORY
Substitua
OMNI_DISK_CACHE_DIRECTORYpelo nome do diretório ou um caminho para o diretório que serve como um ponto de montagem, por exemplo,omni_disk_cache_directory.
Conceder permissões ao diretório de cache em disco
Antes de ativar o cache em disco para o AlloyDB Omni, conceda permissões de acesso total ao diretório de cache em disco. Para conceder permissões, execute os seguintes comandos:
sudo chown postgres:postgres /OMNI_DISK_CACHE_DIRECTORYsudo chmod -R a+rw /OMNI_DISK_CACHE_DIRECTORY
Substitua OMNI_DISK_CACHE_DIRECTORY pelo caminho do diretório de cache em disco.
Ativar o cache em disco
Para ativar o cache em disco do banco de dados, siga estas etapas:
Conecte-se ao banco de dados como um
SUPERUSER./usr/lib/postgresql/18/bin/psql -h localhost -U postgresDefina as flags da Grand Unified Configuration (GUC)
omni_disk_cache_enabledeomni_disk_cache_directory.ALTER SYSTEM SET omni_disk_cache_enabled=on; ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';(Opcional) Por padrão, o AlloyDB Omni usa todo o espaço disponível no sistema de arquivos. Se necessário, substitua isso atualizando a flag
omni_disk_cache_file_sizeda GUC.ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;Substitua
SIZE_IN_MBpela quantidade de espaço em disco, em MB, que você quer que o cache em disco use.Reinicie o AlloyDB Omni.
sudo systemctl restart alloydbomni18
Verificar a configuração do cache em disco
Depois de ativar o cache em disco do AlloyDB Omni, verifique se ele está sendo acessado monitorando a atividade de leitura e gravação nos discos usando utilitários disponíveis, como iotop ou iostat.
Além disso, é possível verificar se o cache em disco do AlloyDB Omni está aberto.
Para verificar a configuração do cache em disco do AlloyDB Omni, use o seguinte comando.
sudo journalctl -u alloydbomni18 | grep "opened omni disk cache"Se o cache em disco estiver configurado corretamente, a mensagem Successfully opened omni disk cache ... vai aparecer nos registros.
A seguir
- Sobre o gerenciamento automático de memória
- Sobre discos SSD locais
- Como criar e iniciar uma instância de VM