Acelera el rendimiento de la base de datos con la caché del disco

Selecciona una versión de la documentación:

En esta página, se describe cómo aprovisionar, configurar y usar el almacenamiento en caché de disco en AlloyDB Omni para aumentar el rendimiento de tu instalación de AlloyDB Omni.

Además de los búferes compartidos en la memoria de PostgreSQL estándar, la memoria caché del disco de AlloyDB Omni permite almacenar búferes en un almacenamiento rápido, como unidades de estado sólido (SSD). El almacenamiento en caché de disco acelera la recuperación de datos en las instalaciones de AlloyDB Omni con directorios de datos ubicados en un almacenamiento más lento.

Al igual que los búferes compartidos de PostgreSQL, la memoria caché del disco de AlloyDB Omni no es persistente, lo que significa que los datos almacenados en caché se pierden cuando se reinicia.

De forma predeterminada, la memoria caché del disco de AlloyDB Omni usa todo el almacenamiento que informa el sistema de archivos. Puedes definir la cantidad de almacenamiento reservado para los datos de la caché con el parámetro omni_disk_cache_file_size.

Habilita la memoria caché del disco de AlloyDB Omni

Para habilitar la memoria caché del disco, completa todas las siguientes subsecciones:

  1. Aprovisiona discos y crea un sistema de archivos
  2. Habilita la memoria caché del disco de AlloyDB Omni para AlloyDB Omni

Aprovisiona discos y crea un sistema de archivos

En el caso de la memoria caché del disco de AlloyDB Omni, creas un sistema de archivos en uno o varios discos y lo activas. Además, puedes usar utilidades como mdadm o lvm para agrupar la capacidad con varios discos y usar cualquier sistema de archivos.

En los siguientes pasos, se muestra cómo usar lvm y ext4 con SSD NVMe.

  1. Crea un grupo de volúmenes a partir de todos los dispositivos físicos disponibles:

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

    Reemplaza lo siguiente:

    • STORAGE_PREFIX: Es el prefijo de la ruta de acceso de los discos locales de destino que se conectan a una máquina virtual con la interfaz de memoria no volátil express (NVMe). Por ejemplo, en Google Cloud, las rutas de acceso del dispositivo NVMe siempre comienzan con /dev/nvme0n.
    • VOLUME_GROUP: Es el nombre de un grupo de volúmenes en el que se combinan tus SSD, por ejemplo, omni-disk-cache-volume.
  2. Para crear un volumen lógico a partir de la capacidad libre del grupo de volúmenes del paso anterior, usa el siguiente comando:

    sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP

    Reemplaza LOGICAL_VOLUME por el nombre de un volumen lógico que LVM trata como una partición, por ejemplo, omni_disk_cache_device.

  3. Crea el sistema de archivos ext4 en el volumen lógico. Si es necesario, puedes especificar otras opciones de ext4 sujetas a la seguridad de los datos.
    sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
  4. Para crear un directorio que sirva como punto de activación en la máquina anfitrión y activar el sistema de archivos, usa el siguiente comando:

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

    Reemplaza OMNI_DISK_CACHE_DIRECTORY por el nombre del directorio o una ruta de acceso al directorio que actúa como punto de activación, por ejemplo, omni_disk_cache_directory.

Otorga permisos al directorio de memoria caché del disco

Antes de habilitar la memoria caché del disco para AlloyDB Omni, debes otorgar permisos de acceso completo al directorio de la memoria caché del disco. Para otorgar permisos, ejecuta los siguientes comandos:

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

Reemplaza OMNI_DISK_CACHE_DIRECTORY por la ruta de acceso al directorio de memoria caché del disco.

Habilita la memoria caché del disco

Para habilitar el almacenamiento en caché de disco para tu base de datos, completa los siguientes pasos:

  1. Conéctate a tu base de datos como SUPERUSER.

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres
  2. Establece las marcas de configuración unificada general (GUC) omni_disk_cache_enabled y omni_disk_cache_directory.

    ALTER SYSTEM SET omni_disk_cache_enabled=on;
    ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';
    
  3. (Opcional) De forma predeterminada, AlloyDB Omni usa todo el espacio disponible en el sistema de archivos. Si es necesario, puedes anular este valor predeterminado actualizando la marca de GUC omni_disk_cache_file_size.

    ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;
    

    Reemplaza SIZE_IN_MB por la cantidad de espacio en disco, en MB, que deseas que use la memoria caché del disco.

  4. Reinicia AlloyDB Omni.

    sudo systemctl restart alloydbomni18

Verifica la configuración de la memoria caché del disco

Después de habilitar la memoria caché del disco de AlloyDB Omni, verifica que se acceda a ella supervisando la actividad de lectura y escritura en los discos con las utilidades disponibles, como iotop o iostat.

Además, puedes verificar si la memoria caché del disco de AlloyDB Omni está abierta.

Para verificar la configuración de la memoria caché del disco para AlloyDB Omni, usa el siguiente comando.

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

Si el almacenamiento en caché en disco está configurado correctamente, el mensaje Successfully opened omni disk cache ... se mostrará en los registros.

¿Qué sigue?