Accélérer les performances de la base de données à l'aide du cache de disque

Sélectionnez une version de la documentation :

Cette page explique comment provisionner, configurer et utiliser la mise en cache du disque sur AlloyDB Omni pour améliorer les performances de votre installation AlloyDB Omni.

En plus des tampons partagés en mémoire PostgreSQL standards, le cache de disque AlloyDB Omni permet de stocker des tampons sur une solution de stockage rapide, comme des disques durs SSD (Solid-State Drives). La mise en cache de disque accélère la récupération des données dans les installations AlloyDB Omni dont les répertoires de données sont situés sur un stockage plus lent.

Comme les tampons partagés PostgreSQL, le cache de disque AlloyDB Omni n'est pas persistant, ce qui signifie que les données mises en cache sont perdues en cas de redémarrage.

Par défaut, le cache de disque AlloyDB Omni utilise tout l'espace de stockage indiqué par le système de fichiers. Vous pouvez définir la quantité de stockage réservée à la mise en cache des données à l'aide du paramètre omni_disk_cache_file_size.

Activer le cache de disque AlloyDB Omni

Pour activer le cache de disque, suivez toutes les sous-sections ci-dessous :

  1. Provisionner des disques et créer un système de fichiers
  2. Activer le cache de disque AlloyDB Omni pour AlloyDB Omni

Provisionner des disques et créer un système de fichiers

Pour le cache de disque AlloyDB Omni, vous créez un système de fichiers sur un ou plusieurs disques et vous l'installez. Vous pouvez également employer des utilitaires tels que mdadm ou lvm pour regrouper la capacité de plusieurs disques et utiliser n'importe quel système de fichiers.

La procédure suivante montre comment utiliser lvm et ext4 avec des SSD NVMe.

  1. Créez un groupe de volumes à partir de tous les appareils physiques disponibles :

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

    Remplacez les éléments suivants :

    • STORAGE_PREFIX : préfixe du chemin d'accès aux disques locaux cibles associés à une machine virtuelle à l'aide de l'interface NVMe (Nonvolatile Memory Express). Par exemple, sur Google Cloud, les chemins d'accès aux périphériques NVMe commencent toujours par /dev/nvme0n.
    • VOLUME_GROUP : nom d'un groupe de volumes dans lequel vos SSD sont combinés, par exemple omni-disk-cache-volume.
  2. Pour créer un volume logique exploitant la capacité disponible du groupe de volumes de l'étape précédente, utilisez la commande suivante :

    sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP

    Remplacez LOGICAL_VOLUME par le nom d'un volume logique traité comme une partition par le LVM, par exemple omni_disk_cache_device.

  3. Créez le système de fichiers ext4 sur le volume logique. Si nécessaire, vous pouvez spécifier d'autres options ext4 liées à la sécurité des données.
    sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
  4. Pour créer un répertoire servant de point d'installation sur la machine hôte et installer le système de fichiers, exécutez la commande suivante :

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

    Remplacez OMNI_DISK_CACHE_DIRECTORY par le nom du répertoire ou par un chemin d'accès au répertoire servant de point d'installation (par exemple, omni_disk_cache_directory).

Accorder des autorisations au répertoire du cache disque

Avant d'activer le cache de disque pour AlloyDB Omni, vous devez accorder des autorisations d'accès complet au répertoire du cache de disque. Pour accorder des autorisations, exécutez les commandes suivantes :

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

Remplacez OMNI_DISK_CACHE_DIRECTORY par le chemin d'accès à votre répertoire de cache de disque.

Activer le cache de disque

Pour activer la mise en cache sur disque pour votre base de données, procédez comme suit :

  1. Connectez-vous à votre base de données en tant que SUPERUSER.

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres
  2. Définissez les indicateurs GUC (Grand Unified Configuration) omni_disk_cache_enabled et omni_disk_cache_directory.

    ALTER SYSTEM SET omni_disk_cache_enabled=on;
    ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';
    
  3. (Facultatif) Par défaut, AlloyDB Omni utilise tout l'espace disponible dans le système de fichiers. Si nécessaire, vous pouvez remplacer cette valeur en mettant à jour l'indicateur GUC omni_disk_cache_file_size.

    ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;
    

    Remplacez SIZE_IN_MB par la quantité d'espace disque (en Mo) que vous souhaitez que le cache disque utilise.

  4. Redémarrez AlloyDB Omni.

    sudo systemctl restart alloydbomni18

Vérifier la configuration du cache de disque

Après avoir activé le cache de disque AlloyDB Omni, surveillez l'activité de lecture et d'écriture sur les disques à l'aide d'utilitaires tels que iotop ou iostat pour vous assurer que le cache de disque est bien accessible.

Vous pouvez également vérifier si le cache de disque AlloyDB Omni est ouvert.

Pour vérifier la configuration du cache de disque pour AlloyDB Omni, utilisez la commande suivante.

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

Si la mise en cache de disque est correctement configurée, le message Successfully opened omni disk cache ... s'affiche dans les journaux.

Étapes suivantes