Redis使用量暴增,快速定位有哪些大key在作怪

2021-09-07 04:35:03 字數 1008 閱讀 7859

發現redis使用量突然暴增,於是緊急擴容redis,不能影響服務執行。擴容之後,趕緊查詢原因,突破口就是尋找存在哪些大key。

2. 用rdbtools工具生產記憶體報告,命令是 rdb -c memory,例子:

sudo rdb -c memory  /redisfile/dump.rdb >test.csv
注意:rdb檔案越大,生成時間越長。

rdbtools是以python語言開發的。

3. 記憶體報告生成後,結合用linux sort命令排序,根據記憶體列排序,找出最高的key有哪些。例子:

sudo sort -k4nr -t , test.csv > sort.txt
4. 檢視前1000個排序最高的資料

awk -f ',' '' sort.txt | head -1000 | sort -k1 | uniq
5. 檢視sort.txt的結果,一般能得出類似『my_rank_top』開頭的集合占用最高,排在了前面。若要檢視類似『my_rank_top』開頭的key總共占用了多少記憶體,可以用命令:

sudo cat sort.txt | grep 『my_rank_top』 | awk -f ',' ';end '
6. 得知了my_rank_top這樣的key占用最多記憶體,而且很可能是業務已經不再需要,但是長期在記憶體中沒清理的,我們可以刪除了這些集合。可以用模糊匹配key來刪除,命令如下:

redis-cli -h 127.0.0.1 -p 6379  keys 'my_ranking_list*' | xargs redis-cli -h 127.0.0.1 -p 6379 del
另附:在本地啟動redis載入dump.rdb檔案時,一直load失敗。搞了很長時間,終於找到原因:redis配置檔案裡databases要修改為256,本地預設是16,而產生原始dump.rdb的redis的databases就是25。

TensorFlow 設定GPU使用量

在預設條件下,tensorflow會一次佔滿左右視訊記憶體!這對於我們想在同一臺機器上跑多個程式不利 後面的程式會報視訊記憶體不足的錯誤 可以通過以下方式,設定tensorflow中視訊記憶體的使用方式 在python 中指定gpu import os os.environ cuda device ...

SQL Server 記憶體使用量下降問題

sql server這個程式是非喜歡記憶體這東西的。所以它的記憶體使用量下降,一定是被別人給搶去了。這件事的後果就是sql server 變的 非常慢。怎麼樣才可以讓這件事不太容易發生呢?方法 1 lock page in memory 方法 用這個方法,就是給sql server 一種死不要臉佔記...

監控pod的資源使用量

設定合適的 資源 requests 和 limits 對充分利用 kubernetes 集群資源來說十分重要。如果 requests 設定得太高,集群節點利用率就會比較低,這樣就白白浪費了金錢。如果設定得太低,應用就會處於 cpu 飢餓狀態,甚至很容易被 oom killer 殺死。所以如何才能找到...