Redis學習筆記 記憶體碎片對效能的影響

2021-10-14 16:44:11 字數 970 閱讀 6904

有時候在使用redis的時候會遇到這樣乙個現象,已經刪除了很多資料,但是redis還是占用了很多記憶體,這是因為資料刪除後,redis釋放的記憶體空間會由記憶體分配器管理,並不會立即返回給作業系統,redis釋放的記憶體空間可能並不是連續的,這些不連續的記憶體空間很有可能處於一種閒置狀態,這篇文章學習一下記憶體碎片是如何產生的,然後如何在不影響redis效能情況下進行記憶體碎片清理。

作業系統的剩餘記憶體空間總量足夠,應用程式申請的是一塊連續位址空間的n位元組,但在剩餘的記憶體空間中,沒有大小為n位元組的連續空間,這些剩餘空間就是記憶體碎片

2.1 形成原因

2.2 如何判斷是否有記憶體碎片

info memory

# memory

used_memory:1073741736

used_memory_human:1024.00m

used_memory_rss:1997159792

used_memory_rss_human:1.86g

…mem_fragmentation_ratio:1.86

2.3 如何清理記憶體碎片

2.4 小建議

如果在實踐過程中遇到redis效能變慢,記得通過日誌看下是否正在進行碎片清理,如果redis正在清理碎片,建議調小active-defrag-cycle-max的值,以減輕對正常請求處理的影響

掃碼關注

Redis記憶體碎片率

一 記憶體碎片率 mem fragmentation ratio used memory rss used memory used memory redis使用其分配器分配的記憶體大小 used memory rss 作業系統分配給redis例項的記憶體大小,表示該程序所佔物理記憶體的大小 兩者包括...

Redis系列之記憶體碎片

在使用cachecloud時看到乙個碎片率的監控指標,於是有了此文。記憶體碎片率,memory fragmentation ratio,簡稱mfr,是redis的乙個效能指標,其計算公式 mfr used memory rss used memory 無論是通過redis cli還是rdm工具,輸入...

redis學習筆記 5 之redis記憶體優化

縮減鍵值物件 命令處理 記憶體淘汰策略 如何選擇淘汰策略 內容 為六星教育,這裡僅作為學習筆記 目前大部分公司都會將 web 伺服器 資料庫伺服器等部署在 linux 作業系統上,redis優化也需要考慮作業系統,所以接下來介紹 linux 作業系統如何優化redis。檢查資料持久化策略 資料落磁碟...