使用 RPM 設定 AlloyDB Omni 以用於實際工作環境

本頁面列出使用 AlloyDB Omni 處理正式環境工作負載時的常見設定。

啟用巨型分頁

AlloyDB Omni 與 PostgreSQL 一樣,支援使用巨型頁面。這需要機器啟用巨型頁面,且您也需要啟用資料庫設定 huge_pages。

如要在 Linux 機器上啟用巨型頁面,請執行下列指令:

sudo /usr/lib/postgresql/MAJOR_VERSION/bin/alloydbomniMAJOR_VERSION-setup-host
在 postgresql.conf 中新增下列程式碼,啟用巨型頁面:

   huge_pages=on

啟用交換功能

在作業系統中進行交換,可讓您在隨機存取記憶體 (RAM) 和硬碟之間移動閒置的記憶體頁面,釋出 RAM 空間供執行中的程序使用,藉此擴充可用的實體記憶體。AlloyDB Omni 在高負載且需要額外記憶體時,會使用交換功能。

如要查看系統啟用的交換空間大小,請執行下列指令:

   cat /proc/meminfo | grep SwapTotal

輸出看起來類似以下內容:

   SwapTotal:      165748732 kB

如果輸出值為 0,請參閱下列內容,瞭解如何在作業系統上啟用交換功能:

  • Red Hat Enterprise Linux 9

  • 啟用核心 dump

    如果 AlloyDB Omni 發生無法復原的錯誤並當機,核心 dump 有助於分析問題。核心傾印是 AlloyDB Omni 程序在當機時的記憶體快照。

    如要設定核心傾印,請按照下列方式設定 kernel.core_pattern:

    1. 使用 sysctl 指令設定執行階段核心參數。
    2. 如要立即設定 kernel.core_pattern,請使用:

      sysctl -w kernel.core_pattern="CORE_PATTERN"

      將 CORE_PATTERN 替換為核心檔案名稱模式,例如「%e-%t.core」。

      如要進一步瞭解核心檔案名稱模式,請參閱「如何設定程序核心檔案名稱」。

      systemd-coredump 處理常式可進一步設定 coredump 設定。這項工具預設安裝在 RHEL 中。

    為確保 AlloyDB Omni 程序能產生完整核心 dump,不受任何大小限制,請在 alloydbomniMAJOR_VERSION.service 檔案的 [Service] 區段中加入 LimitCORE=infinity,設定 systemd 服務。

    1. 在 /etc/systemd/system/alloydbomniMAJOR_VERSION.service.d/override.conf 中建立 alloydbomniMAJOR_VERSION.service 的覆寫檔案。 在 override.conf 檔案中新增下列內容:

        [Service]
        LimitCORE=infinity
      
    2. 重新載入 systemd daemon,以套用變更:

        sudo systemctl daemon-reload
    3. 重新啟動 AlloyDB Omni 服務:

        sudo systemctl restart alloydb-omniMAJOR_VERSION

    啟用內部記錄功能

    除了常規 PostgreSQL 記錄外,AlloyDB Omni 還會提供更多訊息。這些訊息具有技術性質,因此適用於 AlloyDB for PostgreSQL 支援服務。不過,額外資訊有助於偵錯資料庫問題。

    如要啟用內部記錄功能,請完成下列步驟:

    1. 將資料庫參數 enable_alloydb_internal_log 設為 on:

      ALTER SYSTEM SET enable_alloydb_internal_log=on;
      

      如要進一步瞭解如何修改 AlloyDB Omni 設定,請參閱「設定 AlloyDB Omni 資料庫參數」。

    2. 重新啟動 AlloyDB Omni 服務:

       sudo systemctl restart alloydb-omniMAJOR_VERSION

    如要進一步自訂內部記錄,例如設定記錄檔名稱和輪替政策,請使用 PostgreSQL 參數。

    舉例來說,log_directory 參數會指定儲存記錄檔的目錄,而 log_filename 參數則會定義個別記錄檔的名稱。

    AlloyDB Omni 會合併 log_directory 和 log_filename 參數,並依下列方式儲存內部記錄:

    LOG_DIRECTORY/LOG_FILENAME.internal
    

    設定 systemd 單位,自動執行作業

    如果您在專用伺服器上執行 AlloyDB Omni,可能需要設定在伺服器啟動時自動啟動特定作業。其中一種做法是透過 systemd 單位。

    舉例來說,下列步驟會設定 systemd,以便在伺服器啟動時自動啟用巨型頁面。

    在 /etc/systemd/system/alloydb-setup-env.service 中建立檔案:

       [Unit]
       Description=Setup huge pages for AlloyDB Omni
    
       [Service]
       Type=oneshot
    
       ExecStart=/usr/lib/postgresql/MAJOR_VERSION/bin/alloydbomniMAJOR_VERSION-setup-host
    
       [Install]
       WantedBy=multi-user.target
    

    請按照下列步驟啟用服務:

       sudo systemctl enable alloydb-setup-env.service

    後續步驟