使用磁盘缓存提升数据库性能

选择文档版本:

本页面介绍了如何在 AlloyDB Omni 上预配、设置和使用磁盘缓存,以提高 AlloyDB Omni 安装的性能。

除了标准的 PostgreSQL 内存中共享缓冲区之外,AlloyDB Omni 磁盘缓存还可在固态硬盘 (SSD) 等快速存储空间上启用存储缓冲区。在数据目录位于较慢存储空间中的 AlloyDB Omni 安装中,磁盘缓存可加快数据检索速度。

与 PostgreSQL 共享缓冲区一样,AlloyDB Omni 磁盘缓存也是非永久性的,这意味着缓存的数据会在重启时丢失。

默认情况下,AlloyDB Omni 磁盘缓存会使用文件系统报告的所有存储空间。您可以使用 omni_disk_cache_file_size 参数定义为缓存数据预留的存储空间量。

启用 AlloyDB Omni 磁盘缓存

如需启用磁盘缓存,请参阅以下部分:

在本地卷上启用磁盘缓存

如果您想使用本地卷,则无需创建永久性卷。您可以改用以下优化。

如需为数据库在本地卷上启用磁盘缓存,请执行以下操作:

  1. 修改数据库集群清单,以将 ultraFastCache 属性添加到 spec 部分的 features 部分:

    DBCluster:
      metadata:
        name: CLUSTER_NAME
      spec:
        databaseVersion: "18.3.0"
        primarySpec:
          features:
            ultraFastCache:
              cacheSize: DISK_CACHE_SIZE
              localVolume:
                path: "LOCAL_VOLUME_PATH"
    ...
      

    替换以下内容:

    • CLUSTER_NAME:您的数据库集群的名称。
    • DISK_CACHE_SIZE:缓存的大小,例如 100Gi。必须大于 shared_buffers。此字段是可选字段。如果您未指定此字段的值,AlloyDB Omni 会使用磁盘上剩余的所有空间。
    • LOCAL_VOLUME_PATH:本地卷的路径,例如 /mnt/disks/raid/0

  2. 重新应用清单。

  3. 使用您偏好的编排器界面应用更改:

    Ansible

    如果您使用 Ansible 直接管理 AlloyDB Omni RPM 编排器基础架构,则可以通过运行相应的 playbook 并将所选的 update_action 作为额外变量传递来触发更新。

    update.yml 的示例文件:

    ---
    - hosts: localhost
      vars:
        update_action: "update_resource_spec"
        ansible_user: your_ssh_user
        ansible_ssh_private_key_file: ~/path/to/private-key
      roles:
        - role: google.alloydbomni_orchestrator.update
    

    运行 Ansible 命令:

    ansible-playbook -i DEPLOYMENT_SPECIFICATION update.yml -e resource_spec="DBCLUSTER_SPECIFICATION"

    执行以下变量替换操作:

    • DEPLOYMENT_SPECIFICATION:您在安装 AlloyDB Omni 组件中创建的部署规范的路径。

    • DBCLUSTER_SPECIFICATION:集群规范的路径。

    alloydbctl

    alloydbctl apply -d DEPLOYMENT_SPECIFICATION -r DBCLUSTER_SPECIFICATION

    执行以下变量替换操作:

    • DEPLOYMENT_SPECIFICATION:您在安装 AlloyDB Omni 组件中创建的部署规范的路径。

    • DBCLUSTER_SPECIFICATION:集群规范的路径。

验证磁盘缓存配置

启用 AlloyDB Omni 磁盘缓存后,可使用 iotopiostat 等可用实用程序监控对磁盘进行的读写活动,以验证是否可以访问磁盘缓存。

此外,您还可以检查 AlloyDB Omni 磁盘缓存是否已打开。

如需验证 AlloyDB Omni 的磁盘缓存配置,请使用以下命令。

cat LOG_FILE_PATH | grep "opened omni disk cache"

LOG_FILE_PATH 替换为 AlloyDB Omni 日志重定向到的路径。

如果磁盘缓存配置正确,日志中会显示 Successfully opened omni disk cache ... 消息。

后续步骤

* 关于本地 SSD 磁盘 * 创建和启动虚拟机实例