除了標準 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.4.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 元件」中建立的 Deployment 規格路徑。DBCLUSTER_SPECIFICATION:叢集規格的路徑。
alloydbctlalloydbctl apply -d DEPLOYMENT_SPECIFICATION -r DBCLUSTER_SPECIFICATION請替換下列變數:
DEPLOYMENT_SPECIFICATION:您在「安裝 AlloyDB Omni 元件」中建立的 Deployment 規格路徑。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 ... 訊息。