針對 Azure 受控 Redis (預覽) 伺服器問題進行疑難解答
本節討論 Azure 受控 Redis 伺服器或任何裝載它之虛擬機的條件所造成的疑難解答問題。
注意
本指南中的數個疑難排解步驟包含如何執行 Redis 命令和監視各種效能度量的指示。 如需詳細資訊和指示,請參閱 其他資訊 一節中的文章。
高 CPU
高 CPU 表示 Redis 伺服器忙碌中且無法跟上要求,導致逾時。 從左側的 [資源] 功能選取 [監視],以檢查快取上的CPU計量。 您會在 [深入解析] 底下的 [工作] 窗格中看到 CPU 圖形。 或者,將計量設定為 [計量] 底下的 [CPU]。
以下是針對高 CPU 考慮的一些選項。
相應增加或移至較高的效能層級
為了提升效能,請考慮使用更多CPU核心相應增加至較大的快取大小。 如需詳細資訊,請參閱 效能層級。
用戶端連線數目的快速變更
如需詳細資訊,請參閱避免用戶端連線尖峰。
長時間執行或成本高昂的命令
如需詳細資訊,請參閱長時間執行的命令。
調整大小
調整作業需要大量 CPU 和記憶體,因為該作業可能需要在節點周圍移動資料,並變更叢集拓撲。 如需詳細資訊,請參閱調整。
伺服器維護
如果您的 Azure 受控 Redis 發生故障轉移,則所有已關閉節點的用戶端連線都會傳輸到仍在執行的節點。 CPU 可能會因為連線增加而突然增加。 您可以嘗試重新啟動用戶端應用程式,讓所有用戶端連線在兩個節點間重新建立和重新分配。
高記憶體用量
伺服器上的記憶體壓力可能導致各種效能問題,並延遲處理要求。 達到記憶體壓力時,系統會將資料分頁至磁碟,導致系統大幅降低速度。
以下是一些記憶體壓力可能的原因︰
- 接近容量上限的資料會填滿快取
- Redis 伺服器會顯示高記憶體片段
負載模式儲存大小極端不同的資料時,可能導致記憶體片段。 例如,資料大小橫跨 1 KB 和 1 MB 時,可能發生記憶體片段。 從現有的記憶體刪除 1 KB 索引鍵後,1 MB 索引鍵即無法放入,因而導致片段。 以此類推,如果刪除 1 MB 索引鍵並新增 1.5 MB 索引鍵,後者無法放入現有的回收記憶體, 這導致未使用的可用記憶體,並產生更多的片段。
如果used_memory_rss
值高於計量的 1.5 倍used_memory
,則記憶體會出現片段。 下列情況時,片段可能導致問題:
- 記憶體使用量接近快取的記憶體限制上限,或
UsedMemory_RSS
高於記憶體限制上限,可能導致記憶體中的分頁錯誤。
如果快取已是碎片,並在高記憶體壓力下執行,則系統會執行容錯移轉以嘗試復原 Resident Set Size (RSS) 記憶體。
Redis 透過 INFO 命令來公開兩個統計資料、used_memory
和 used_memory_rss
,其可協助您識別問題。 您可以使用入口網站來檢視這些計量。
您可以進行幾項可能的變更,以協助讓記憶體使用量保持良好狀況:
- 設定記憶體原則 並在金鑰上設定到期時間。 如果您的記憶體分散,此原則可能不足以應付。
- 針對計量建立警示 (例如已使用的記憶體),以及早獲得關於潛在影響的通知。
- 調整為包含更多記憶體容量、較大的快取大小。 如需詳細資訊,請參閱 Azure 受控 Redis 規劃常見問題。
如需記憶體管理的建議,請參閱記憶體管理的最佳做法。
長時間執行的命令
如需詳細資訊,請參閱長時間執行的命令。
伺服器端的頻寬限制
如需詳細資訊,請參閱網路頻寬限制。