使用磁碟快取提升資料庫效能

選取文件版本:

本頁說明如何在 AlloyDB Omni 上佈建、設定及使用磁碟快取,以提升 AlloyDB Omni 安裝作業的效能。

除了標準 PostgreSQL 記憶體內建的共用緩衝區,AlloyDB Omni 磁碟快取還可將緩衝區儲存在固態硬碟 (SSD) 等快速儲存空間。如果資料目錄位於速度較慢的儲存空間,磁碟快取功能可加快 AlloyDB Omni 安裝作業的資料擷取速度。

與 PostgreSQL 共用緩衝區類似,AlloyDB Omni 磁碟快取不會保留資料,因此重新啟動後快取資料會遺失。

根據預設,AlloyDB Omni 磁碟快取會使用檔案系統回報的所有儲存空間。您可以使用 omni_disk_cache_file_size 參數,定義保留給快取資料的儲存空間量。

啟用 AlloyDB Omni 磁碟快取

如要啟用磁碟快取,請完成下列所有小節:

  1. 佈建磁碟並建立檔案系統
  2. 為 AlloyDB Omni 啟用 AlloyDB Omni 磁碟快取

佈建磁碟並建立檔案系統

如果是 AlloyDB Omni 磁碟快取,您可以在一或多個磁碟上建立檔案系統並掛接。此外,您可以使用 mdadmlvm 等公用程式,將多個磁碟的容量集中在一起,並使用任何檔案系統。

下列步驟示範如何使用 lvmext4,並搭配 NVMe SSD。

  1. 從所有可用的實體裝置建立磁碟區群組:

    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
  2. 如要從上一步的磁碟區群組可用容量建立邏輯磁碟區,請使用下列指令:

    sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP

    LOGICAL_VOLUME 替換為 LVM 視為分割區的邏輯磁碟區名稱,例如 omni_disk_cache_device

  3. 在邏輯磁碟區上建立 ext4 檔案系統。如有需要,您可以指定其他 ext4 選項,但須遵守資料安全規定。
    sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
  4. 如要在主體機器上建立做為掛接點的目錄並掛接檔案系統,請使用下列指令:

    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_DIRECTORY
sudo chmod -R a+rw  /OMNI_DISK_CACHE_DIRECTORY

OMNI_DISK_CACHE_DIRECTORY 替換為磁碟快取目錄的路徑。

啟用磁碟快取

如要為資料庫啟用磁碟快取,請完成下列步驟:

  1. SUPERUSER 身分連線至資料庫。

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres
  2. 設定 omni_disk_cache_enabledomni_disk_cache_directory Grand Unified Configuration (GUC) 旗標。

    ALTER SYSTEM SET omni_disk_cache_enabled=on;
    ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';
    
  3. (選用) 根據預設,AlloyDB Omni 會使用檔案系統中的所有可用空間。如有需要,您可以更新 omni_disk_cache_file_size GUC 旗標來覆寫這項設定。

    ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;
    

    SIZE_IN_MB 替換為您要使用的磁碟快取空間大小 (以 MB 為單位)。

  4. 重新啟動 AlloyDB Omni。

    sudo systemctl restart alloydbomni18

驗證磁碟快取設定

啟用 AlloyDB Omni 磁碟快取後,請使用 iotopiostat 等實用工具監控磁碟的讀取和寫入活動,確認磁碟快取是否遭到存取。

此外,您也可以檢查 AlloyDB Omni 磁碟快取是否已開啟。

如要驗證 AlloyDB Omni 的磁碟快取設定,請使用下列指令。

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

如果磁碟快取設定正確,記錄中會顯示 Successfully opened omni disk cache ... 訊息。

後續步驟