Redis 生產事件排查

2021-10-10 09:51:14 字數 1653 閱讀 6444

日誌告警:oom command not allowed when used memory

大綱:

設定maxmemory和相對應的**策略演算法,設定最好為物理記憶體的3/4,或者比例更小,因為redis複製資料等其他服務時,也是需要快取的。以防快取資料過大致使redis崩潰,造成系統出錯不可用。

通過redis.conf 配置檔案指定 maxmemory 1024

通過命令修改 config set maxmemory 1024

設定合理的記憶體淘汰策略

通過redis.conf 配置檔案指定   maxmemory-policy allkeys-lru

安裝工具dbatools redistools,列出最大的前n個key  

/data/program/dbatools-master/redistools/redis-cli-new -h -p --bigkeys --bigkey-numb 3
原生命令:

/usr/local/redis-3.0.5/src/redis-cli -c -h -p --bigkeys
分析rdb檔案中的全部key/某種型別的佔用量:

rdb -c memory dump.rdb -t list -f dump-formal-list.csv

檢視某個key的記憶體佔用量:

# redis-memory-for-key  -s -p xkey             xbytes               4274388.0type                hashencoding            hashtablenumber of elements      39634length of largest element   29
設定redis的慢命令的時間閾值(單位:微妙)通過redis.conf配置檔案方式

# 執行時間大於多少微秒(microsecond,1秒 = 1,000,000 微秒)的查詢進行記錄。slowlog-log-lower-than 1000# 最多能儲存多少條日誌slowlog-max-len 200
通過命令方式

# 配置查詢時間超過1毫秒的, 第乙個引數單位是微秒config set slowlog-log-lower-than 1000# 儲存200條慢查記錄config set slowlog-max-len 200
檢視redis的慢命令slowlog get

通過redis.conf 配置檔案指定最大連線數  maxclients 10000

生產close wait問題排查記錄

一 問題現象 背景 公司封裝了訊息中心,統一對接外部簡訊通道,並提供統一的傳送api http介面 供公司內部使用。環境如下 問題現象 圖中 3.簡訊平台 出現很多 closed wait 連線,檢視這些closed wait的連線都是和nginx的連線ip port 二 分析http在什麼情況下會...

生產服務記憶體洩露排查

生產環境,我們使用rancher k8s部署我們的服務,有個服務 具體我這裡就不說了 在晚上8點左右,因為這個服務的記憶體溢位導致了其他服務出現了異常,在8點的時候,客戶頻繁投訴,後面排查發現是有個服務記憶體洩露。通過grafana圖形觀察,可以明顯看到其實這個服務在早市11點左右其實已經記憶體洩露...

生產環境ES查詢延遲排查

最近經常收到業務方配置的es查詢延遲告警,同樣的請求手動在kibana控制台執行只需幾十毫秒就返回結果。受影響的整個鏈路情況如下,php應用程式通過部署在es集群各節點上的nginx訪問es請求查詢資料。查詢延遲原因可能有2個方面的因素 1 es集群異常,es應用故障或者集群節點主機故障。集群節點主...