除了标准的 PostgreSQL 内存中共享缓冲区之外,AlloyDB Omni 磁盘缓存还可在固态硬盘 (SSD) 等快速存储空间上启用存储缓冲区。在数据目录位于较慢存储空间中的 AlloyDB Omni 安装中,磁盘缓存可加快数据检索速度。
与 PostgreSQL 共享缓冲区一样,AlloyDB Omni 磁盘缓存也是非永久性的,这意味着缓存的数据会在重启时丢失。
默认情况下,AlloyDB Omni 磁盘缓存会使用文件系统报告的所有存储空间。您可以使用 omni_disk_cache_file_size 参数定义为缓存数据预留的存储空间量。
启用 AlloyDB Omni 磁盘缓存
如需启用磁盘缓存,请参阅以下部分:
在本地卷上启用磁盘缓存
如果您想使用本地卷,则无需创建永久性卷。您可以改用以下优化。
如需为数据库在本地卷上启用磁盘缓存,请执行以下操作:
修改数据库集群清单,以将
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。
重新应用清单。
使用您偏好的编排器界面应用更改:
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:集群规范的路径。
alloydbctlalloydbctl apply -d DEPLOYMENT_SPECIFICATION -r DBCLUSTER_SPECIFICATION执行以下变量替换操作:
DEPLOYMENT_SPECIFICATION:您在安装 AlloyDB Omni 组件中创建的部署规范的路径。DBCLUSTER_SPECIFICATION:集群规范的路径。
验证磁盘缓存配置
启用 AlloyDB Omni 磁盘缓存后,可使用 iotop 或 iostat 等可用实用程序监控对磁盘进行的读写活动,以验证是否可以访问磁盘缓存。
此外,您还可以检查 AlloyDB Omni 磁盘缓存是否已打开。
如需验证 AlloyDB Omni 的磁盘缓存配置,请使用以下命令。
cat LOG_FILE_PATH | grep "opened omni disk cache"将 LOG_FILE_PATH 替换为 AlloyDB Omni 日志重定向到的路径。
如果磁盘缓存配置正确,日志中会显示 Successfully opened omni disk cache ... 消息。