日誌告警: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的慢命令的時間閾值(單位:微妙)通過redis.conf配置檔案方式# redis-memory-for-key -s -p x
key x
bytes 4274388.0
type hash
encoding hashtable
number of elements 39634
length of largest element 29
通過命令方式# 執行時間大於多少微秒(microsecond,1秒 = 1,000,000 微秒)的查詢進行記錄。
slowlog-log-lower-than 1000
# 最多能儲存多少條日誌
slowlog-max-len 200
檢視redis的慢命令slowlog get# 配置查詢時間超過1毫秒的, 第乙個引數單位是微秒
config set slowlog-log-lower-than 1000
# 儲存200條慢查記錄
config set slowlog-max-len 200
通過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應用故障或者集群節點主機故障。集群節點主...