修正「共用記憶體不足」錯誤
如果執行 AlloyDB Omni 時,資料欄引擎的共用記憶體不足,可能會看到下列錯誤:
Insufficient shared memory for generating the columnar formats.
如要解決這個問題,請指定 AlloyDB Omni 容器可用的共用記憶體容量。
Linux
請確認您已安裝 AlloyDB Omni,且
/dev/shm
目錄已掛接至容器。詳情請參閱「自訂 AlloyDB Omni 安裝作業」。使用編輯
/etc/fstab
檔案等技術,增加主機的/dev/shm
分區大小。
macOS
安裝新的 AlloyDB Omni 容器,並為 --shm-size
旗標指定較大的共用記憶體值。
找出在資料欄引擎中填入的資料表
在 g_columnar_relations
檢視畫面中,建立查詢來找出直欄引擎中的資料表。
SELECT * FROM g_columnar_relations;
找出資料欄引擎使用的整體記憶體
使用 google_columnar_engine_memory_available()
SQL 函式,判斷資料欄引擎使用的記憶體量。
SELECT google_columnar_engine_memory_available();
判斷資料欄引擎中是否未填入特定資料欄
請嘗試下列解決方案:
- 檢查資料欄引擎是否支援資料欄的資料類型。
- 如果您最近在基礎資料表中新增或捨棄資料欄,請確認您在直欄引擎中執行了相同作業。
確認查詢是否使用資料欄引擎
在查詢計畫中,確認是否有「自訂掃描 (資料欄掃描)」規劃工具節點。
查看進行中的維護工作
在 g_columnar_jobs
檢視畫面中查詢,找出進行中的工作。
SELECT * FROM g_columnar_jobs;
設定直欄引擎中維護活動使用的資源量
根據預設,直欄引擎最多會使用 20% 的資料庫資源。如要增加或減少這項用量,請調整 google_columnar_engine.maintenance_cpu_percentage
(GUC) 設定。詳情請參閱「調整維護作業的 CPU 資源」。