除了標準 PostgreSQL 記憶體內建的共用緩衝區,AlloyDB Omni 磁碟快取還可將緩衝區儲存在固態硬碟 (SSD) 等快速儲存空間。如果資料目錄位於速度較慢的儲存空間,磁碟快取功能可加快 AlloyDB Omni 安裝作業的資料擷取速度。
與 PostgreSQL 共用緩衝區類似,AlloyDB Omni 磁碟快取不會保留資料,因此重新啟動後快取資料會遺失。
根據預設,AlloyDB Omni 磁碟快取會使用檔案系統回報的所有儲存空間。您可以使用 omni_disk_cache_file_size 參數,定義保留給快取資料的儲存空間量。
啟用 AlloyDB Omni 磁碟快取
如要啟用磁碟快取,請完成下列所有小節:
佈建磁碟並建立檔案系統
如果是 AlloyDB Omni 磁碟快取,您可以在一或多個磁碟上建立檔案系統並掛接。此外,您可以使用 mdadm 或 lvm 等公用程式,將多個磁碟的容量集中在一起,並使用任何檔案系統。
下列步驟示範如何使用 lvm 和 ext4,並搭配 NVMe SSD。
從所有可用的實體裝置建立磁碟區群組:
nvme_prefix="STORAGE_PREFIX" nvme_list=$(ls "$nvme_prefix"*) sudo vgcreate VOLUME_GROUP ${nvme_list}
更改下列內容:
STORAGE_PREFIX:使用非揮發性記憶體高速 (NVMe) 介面連結至虛擬機器的目標本機磁碟路徑前置字元,例如在 Google Cloud上,NVMe 裝置路徑一律以/dev/nvme0n開頭。VOLUME_GROUP:SSD 組合所在的磁碟區群組名稱,例如omni-disk-cache-volume。
-
如要從上一步的磁碟區群組可用容量建立邏輯磁碟區,請使用下列指令:
sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP
將
LOGICAL_VOLUME替換為 LVM 視為分割區的邏輯磁碟區名稱,例如omni_disk_cache_device。 - 在邏輯磁碟區上建立
ext4檔案系統。如有需要,您可以指定其他ext4選項,但須遵守資料安全規定。sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
如要在主體機器上建立做為掛接點的目錄並掛接檔案系統,請使用下列指令:
sudo mkdir /OMNI_DISK_CACHE_DIRECTORY sudo mount /dev/VOLUME_GROUP/LOGICAL_VOLUME /OMNI_DISK_CACHE_DIRECTORY
將
OMNI_DISK_CACHE_DIRECTORY替換為目錄名稱或目錄路徑 (做為掛接點),例如omni_disk_cache_directory。
授予磁碟快取目錄的權限
啟用 AlloyDB Omni 的磁碟快取前,請務必授予磁碟快取目錄完整存取權。如要授予權限,請執行下列指令:
sudo chown postgres:postgres /OMNI_DISK_CACHE_DIRECTORYsudo chmod -R a+rw /OMNI_DISK_CACHE_DIRECTORY
將 OMNI_DISK_CACHE_DIRECTORY 替換為磁碟快取目錄的路徑。
啟用磁碟快取
如要為資料庫啟用磁碟快取,請完成下列步驟:
以
SUPERUSER身分連線至資料庫。/usr/lib/postgresql/18/bin/psql -h localhost -U postgres設定
omni_disk_cache_enabled和omni_disk_cache_directoryGrand Unified Configuration (GUC) 旗標。ALTER SYSTEM SET omni_disk_cache_enabled=on; ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';(選用) 根據預設,AlloyDB Omni 會使用檔案系統中的所有可用空間。如有需要,您可以更新
omni_disk_cache_file_sizeGUC 旗標來覆寫這項設定。ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;將
SIZE_IN_MB替換為您要使用的磁碟快取空間大小 (以 MB 為單位)。重新啟動 AlloyDB Omni。
sudo systemctl restart alloydbomni18
驗證磁碟快取設定
啟用 AlloyDB Omni 磁碟快取後,請使用 iotop 或 iostat 等實用工具監控磁碟的讀取和寫入活動,確認磁碟快取是否遭到存取。
此外,您也可以檢查 AlloyDB Omni 磁碟快取是否已開啟。
如要驗證 AlloyDB Omni 的磁碟快取設定,請使用下列指令。
sudo journalctl -u alloydbomni18 | grep "opened omni disk cache"如果磁碟快取設定正確,記錄中會顯示 Successfully opened omni disk cache ... 訊息。