redis内存占用过高的问题排查
生活随笔
收集整理的這篇文章主要介紹了
redis内存占用过高的问题排查
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景
在往消息系統發送消息,寫入redis的時候,出現redis內存飆升的情況,原來redis服務器的內存是16G,占用約8G,后面通過補推業務數據造成了占用到90%的內存。緊急把服務器內存升級到32G,再繼續補推數據,內存飆升的情況還繼續,在一兩個小時內又飆升到92%左右。
排查過程
用上重啟大法
分別重啟了redis的從庫,主庫,都沒用。這個方案pass。
是否有內存碎片?
懷疑是頻繁修改redis里值過大的key引起的,后來在測試環境對某個有6千多個值的key進行修改1萬次,觀察redis占用內存的變化,結果是變化不大。另外,根據redis的幾個內存相關參數看到redis內存碎片也正常。這個原因又被pass。
尋找占用內存過高的key
目標是想利用某些工具分析出redis里哪些key的值占用內存最多,并且按占用大小做倒序,根據key的業務值去排查是否正常。最后運維通過下面的工具拿到redis的大key,發現是系統設計的問題,有很多大key已經不再使用,但是并沒有在redis里刪除,引起了這個問題。最終通過刪除相關的key把redis內存降低到6.5G左右。
獲取redis大key的方法詳見:https://yq.aliyun.com/articles/117042
總結
以上是生活随笔為你收集整理的redis内存占用过高的问题排查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PGSQL新增字段
- 下一篇: 定时提醒软件如何设置提醒时间