當前位置:編程學習大全網 - 行動軟體 - Redis 內存故障診斷及常用運維命令

Redis 內存故障診斷及常用運維命令

妳是否有過這種困擾:我的數據量非常小,但還是報OOM錯誤?

首先我給大家解釋下,Redis的OOM分兩種

簡短介紹下Redis內存消耗劃分情況,為下文診斷提供思路。上圖可以總結Redis消耗內存分如下幾塊:

使用redis-benchmark持續灌入數據

制造輸入緩沖區壓力(防止幹擾,先清空數據再壓測)

壓測幾秒鐘後,觸發OOM

檢查輸入緩沖區內存消耗,能看到客戶端輸入緩沖區消耗總量為 2.4G左右,遠遠超過maxmemory參數設置。

可通過運行上述檢查命令,定位到各客戶端輸入緩沖區的內存消耗(由大到小排序)。

壹般如果定位到有連接異常,可以使用如下命令殺掉

為測試方便,我直接把復制積壓緩沖區配置為800M。

開啟redis-benchmark壓測進程

檢查復制積壓緩沖區內存消耗,可以看到因為緩沖區設置過大,數據量才存儲190多M,Redis就無法寫入了。

若客戶端輸出緩沖區太大如何排查?壹般該場景比較少見,常見於用到了redis的 monitor 命令

先開啟monitor命令

上文排查過程有些Redis運維命令我認為比較實用,整理如下

腳本執行效果:

  • 上一篇:3-6歲數感積木啟蒙
  • 下一篇:文藝插畫壁紙-求中國古典風格的背景圖(遊戲,漫畫,插畫的都可以)
  • copyright 2024編程學習大全網