Accelera le prestazioni del database utilizzando la cache del disco

Seleziona una versione della documentazione:

Questa pagina descrive come eseguire il provisioning, configurare e utilizzare la memorizzazione nella cache dei dischi su AlloyDB Omni per aumentare le prestazioni dell'installazione di AlloyDB Omni.

Oltre ai buffer condivisi in memoria di PostgreSQL standard, la cache dei dischi di AlloyDB Omni consente di archiviare i buffer su spazio di archiviazione veloce, come le unità a stato solido (SSD). La memorizzazione nella cache dei dischi accelera il recupero dei dati nelle installazioni di AlloyDB Omni con directory di dati situate su uno spazio di archiviazione più lento.

Come i buffer condivisi di PostgreSQL, la cache dei dischi di AlloyDB Omni non è persistente, il che significa che i dati memorizzati nella cache vengono persi al riavvio.

Per impostazione predefinita, la cache dei dischi di AlloyDB Omni utilizza tutto lo spazio di archiviazione segnalato dal file system. Puoi definire la quantità di spazio di archiviazione riservata alla memorizzazione nella cache dei dati utilizzando il parametro omni_disk_cache_file_size.

Abilita la cache dei dischi di AlloyDB Omni

Per abilitare la cache dei dischi, completa tutte le seguenti sottosezioni:

  1. Esegui il provisioning dei dischi e crea un file system
  2. Abilita la cache dei dischi di AlloyDB Omni per AlloyDB Omni

Esegui il provisioning dei dischi e crea un file system

Per la cache dei dischi di AlloyDB Omni, crea un file system su uno o più dischi e lo monti. Inoltre, puoi utilizzare utilità come mdadm o lvm per raggruppare la capacità utilizzando più dischi e utilizzare qualsiasi file system.

I passaggi seguenti mostrano l'utilizzo di lvm e ext4 utilizzando SSD NVMe.

  1. Crea un gruppo di volumi da tutti i dispositivi fisici disponibili:

    nvme_prefix="STORAGE_PREFIX"
    nvme_list=$(ls "$nvme_prefix"*)
    sudo vgcreate VOLUME_GROUP ${nvme_list}

    Sostituisci quanto segue:

    • STORAGE_PREFIX: il prefisso del percorso dei dischi locali di destinazione collegati a una macchina virtuale utilizzando l'interfaccia NVMe (Nonvolatile Memory Express), ad esempio, su Google Cloud, i percorsi dei dispositivi NVMe iniziano sempre con /dev/nvme0n.
    • VOLUME_GROUP: il nome di un gruppo di volumi in cui sono combinati gli SSD, ad esempio omni-disk-cache-volume.
  2. Per creare un volume logico dalla capacità libera del gruppo di volumi del passaggio precedente, utilizza il seguente comando:

    sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP

    Sostituisci LOGICAL_VOLUME con il nome di un volume logico trattato come partizione da LVM, ad esempio omni_disk_cache_device.

  3. Crea il file system ext4 sul volume logico. Se necessario, puoi specificare altre opzioni ext4 soggette alla sicurezza dei dati.
    sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
  4. Per creare una directory che funge da punto di montaggio sulla macchina host e montare il file system, utilizza il seguente comando:

    sudo mkdir /OMNI_DISK_CACHE_DIRECTORY
    sudo mount /dev/VOLUME_GROUP/LOGICAL_VOLUME /OMNI_DISK_CACHE_DIRECTORY

    Sostituisci OMNI_DISK_CACHE_DIRECTORY con il nome della directory o un percorso della directory che funge da punto di montaggio, ad esempio omni_disk_cache_directory.

Concedi autorizzazioni alla directory della cache dei dischi

Prima di abilitare la cache dei dischi per AlloyDB Omni, devi concedere le autorizzazioni di accesso completo alla directory della cache dei dischi. Per concedere le autorizzazioni, esegui i seguenti comandi:

sudo chown postgres:postgres /OMNI_DISK_CACHE_DIRECTORY
sudo chmod -R a+rw  /OMNI_DISK_CACHE_DIRECTORY

Sostituisci OMNI_DISK_CACHE_DIRECTORY con il percorso della directory della cache dei dischi.

Abilita la cache dei dischi

Per abilitare la memorizzazione nella cache dei dischi per il database:

  1. Connettiti al database come SUPERUSER.

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres
  2. Imposta i flag GUC (Grand Unified Configuration) omni_disk_cache_enabled e omni_disk_cache_directory.

    ALTER SYSTEM SET omni_disk_cache_enabled=on;
    ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';
    
  3. (Facoltativo) Per impostazione predefinita, AlloyDB Omni utilizza tutto lo spazio disponibile nel file system. Se necessario, puoi sostituire questo comportamento aggiornando il flag GUC omni_disk_cache_file_size.

    ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;
    

    Sostituisci SIZE_IN_MB con la quantità di spazio su disco, in MB, che vuoi che la cache dei dischi utilizzi.

  4. Riavvia AlloyDB Omni.

    sudo systemctl restart alloydbomni18

Verifica la configurazione della cache dei dischi

Dopo aver abilitato la cache dei dischi di AlloyDB Omni, verifica che la cache dei dischi sia accessibile monitorando l'attività di lettura e scrittura sui dischi utilizzando le utilità disponibili come iotop o iostat.

Inoltre, puoi verificare se la cache dei dischi di AlloyDB Omni è aperta.

Per verificare la configurazione della cache dei dischi per AlloyDB Omni, utilizza il seguente comando.

sudo journalctl -u alloydbomni18 | grep "opened omni disk cache"

Se la memorizzazione nella cache dei dischi è configurata correttamente, nei log viene visualizzato il messaggio Successfully opened omni disk cache ....

Passaggi successivi