本頁面說明各種錯誤情況,並提供解決錯誤的指引。
複製情境
本節說明執行個體可能發生的複製問題。
如何監控複寫延遲?
Memorystore for Valkey 具有 /instance/replication/maximum_offset_diff 指標。這項指標會監控主要執行個體中節點的複製偏移量差異上限 (以位元組為單位)。
只要將複寫偏移差異維持在較低的水準,副本就能以比完整同步作業更低的成本,更頻繁地執行增量同步作業。
建議您為 maximum_offset_diff 指標設定門檻。如果超過門檻,Memorystore for Valkey 可以透過快訊通知您。
根據執行個體的節點類型,建議您設定的門檻如下:
- 如果節點類型為
shared-core-nano、standard-small或highmem-medium,請將閾值設為小於 64 MB。 - 如果節點類型為
highmem-xlarge,請將門檻設為小於 1 GB。
如果主要執行個體與備用資源之間出現複製延遲,該怎麼辦?
如果主要執行個體有太多寫入作業,而備用資源無法趕上複製這些作業,就可能會出現明顯的複製延遲。如要解決這個問題,建議您增加執行個體的分片數量,藉此擴充執行個體的容量。
CPU 使用率情境
本節說明執行個體可能遇到的 CPU 使用率問題。
如果執行個體的輸出緩衝區空間不足,該怎麼辦?
如果 Memorystore for Valkey 執行個體的輸出緩衝區空間不足,請執行下列操作:
- 為
maxmemory參數設定較小的值。 - 使用
allkeys-lrumaxmemory政策。
當執行個體的記憶體已滿,但有新的寫入作業要執行時,Memorystore for Valkey 會根據執行個體的 maxmemory 政策撤銷金鑰,以便釋出空間來執行寫入作業。allkeys-lru 政策會從整個鍵集逐出近期最少使用的 (LRU) 金鑰。
建議您監控執行個體的 maxmemory 和已用記憶體。這有助於瞭解執行個體是否達到佈建的執行個體容量。此外,減少 maxmemory 參數的值,可為額外負荷爭取更多空間。
記憶體管理情境
本節說明執行個體可能遇到的記憶體管理問題。
您可以使用哪項指標,判斷執行個體是否處於記憶體壓力下?
如要監控 Memorystore for Valkey 執行個體的記憶體用量,建議查看 /instance/memory/maximum_utilization 指標。如果執行個體的記憶體用量接近 80%,且您預期資料用量會增加,請擴充執行個體的大小,以提升效能並為新資料騰出空間。
監控情境
本節說明執行個體可能遇到的監控問題。
如何為 Memorystore for Valkey 設定快訊?
您可以透過 Cloud Monitoring 設定快訊,在任何指標超過您為執行個體設定的門檻時收到通知。如要進一步瞭解如何在 Cloud Monitoring 中設定快訊,請參閱「設定記憶體用量的 Monitoring 快訊」。
連線管理情境
本節說明執行個體可能遇到的連線管理問題。
如果達到連線上限或連線逾時,該怎麼辦?
達到連線上限時,用戶端就無法連線至伺服器。這就是所謂的「連線遭拒」。
如果發生這種情況,請按照下列步驟操作:
- 使用
/instance/node/stats/rejected_connections_count指標,判斷 Memorystore for Valkey 拒絕的連線數量,因為執行個體節點已達用戶端上限。 - 使用
/instance/node/clients/connected_clients指標判斷連線至執行個體節點的用戶端數量。這樣一來,您就能查看執行個體中的所有節點是否都低於限制。 - 使用
client kill指令停止任何洩漏或不必要的連線。 - 在用戶端應用程式中減少連線數量或集區大小。詳情請參閱用戶端應用程式相關說明文件。
- 調整用戶端數量上限。詳情請參閱「設定執行個體」。
- 將執行個體擴充至較大的節點類型,讓執行個體擁有較高的連線限制。
逾時情境
本節說明執行個體可能遇到的逾時問題。
如果收到 I/O 逾時訊息,該怎麼辦?
如果 Memorystore for Valkey 的讀取或寫入作業無法在指定時間內完成,就會發生 I/O 逾時。逾時的原因有很多,舉例來說,執行個體的一或多個節點可能過載。
如果收到 I/O 超時訊息,請按照下列步驟操作:
- 使用
instance/cpu/maximum_utilization指標判斷執行個體中節點的 CPU 使用率,範圍從 0.0 (0%) 到 1.0 (100%)。建議所有節點的 CPU 使用率百分比都低於 80%。詳情請參閱「CPU 使用率最佳做法」。 - 如果伺服器逾時導致用戶端與伺服器中斷連線,請使用指數輪詢和抖動重試。這有助於避免多個用戶端同時造成伺服器過載。
連線錯誤情境
本節說明執行個體可能遇到的連線問題。
防火牆規則導致連線錯誤
防火牆規則可能會封鎖 Memorystore for Valkey 使用的通訊埠,導致連線錯誤。您必須將執行個體 Private Service Connect 端點的所有連接埠加入允許清單。如要進一步瞭解端點,請參閱「保留的網路位址」。
機構政策導致連線錯誤
您可能設有機構政策,禁止 Private Service Connect 連線至 Memorystore for Valkey 執行個體。
如果貴機構政策使用 .restrictPrivateServiceConnectProducer
policy,請將 672235397475 資料夾編號加入允許清單,這個資料夾專門用於 Memorystore for Valkey。例如:
name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
rules:
- values:
allowedValues:
- under:folders/672235397475
如果貴機構政策使用 .disablePrivateServiceConnectCreationForConsumers 政策,請將 allowlist SERVICE_PRODUCERS。例如:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
rules:
- values:
allowedValues:
- SERVICE_PRODUCERS
處理已停用叢集模式執行個體的錯誤
如果應用程式連線至沒有唯讀副本的執行個體唯讀端點,連線就會關閉,並顯示
ERR no replicas found錯誤訊息。在這種情況下,請嘗試將應用程式連線至主要端點,或在執行個體中新增讀取副本。發生容錯移轉時,應用程式的現有連線會關閉,並顯示
ERR role change occurred錯誤訊息。如果應用程式連線至執行個體的讀取端點,且執行個體的所有讀取副本都失敗,您也會看到這則錯誤訊息。在這種情況下,應用程式必須以指數輪詢方式重試連線。
保留情境
本節說明執行個體可能發生的持續性問題。
您的寫入流量超過 Memorystore for Valkey 的能力,無法透過 AOF 重寫壓縮及回收空間
如果發生這種情況,則唯讀附加檔案 (AOF) 的成長速度會比重寫程序可管理的速度快。這會導致磁碟耗盡、寫入失敗,並封鎖需要建立副本和完整同步處理的作業。
Memorystore for Valkey 實作了安全防護措施,可調控寫入輸送量。 這可確保 AOF 重寫作業能跟上持續的高寫入工作負載。