目錄
- 一、作業系統SWAP
- 二、Redis為什么會觸發swap
- 三、查看Redis swap情況
- 四、解決Redis swap
一、作業系統SWAP
swap是作業系統的行為,是指當記憶體不足時,作業系統將記憶體的資料拿出一部分放入磁盤,資料從記憶體和磁盤換入換出的機制,涉及到磁盤的IO,一旦發生swap,記憶體對應的行程的性能都會受到影響,因為硬碟的訪問速度遠遠小于記憶體,
redis作為記憶體資料庫,如果redis對應的記憶體發生了swap,那么redis的性能會受到極大的影響,
二、Redis為什么會觸發swap
觸發swap的核心原因是機器記憶體不足,對于redis來說有兩個原因會觸發swap:
- redis自身占用了大量記憶體,導致機器可用記憶體不足
- redis所在機器其他行程占用記憶體,導致記憶體不足,
三、查看Redis swap情況
查找redis對應的行程id
src/redis-cli info | grep process_id

進入redis對應的行程目錄
cd /proc/5910

查看swap
cat smaps | egrep '^(Swap|Size)'

上圖中size代表redis實體占用的一塊記憶體空間,都有一個對應的Swap,swap的大小代表該記憶體空間區域有多少已經被換到硬碟了,如果size和swap相等,則代表已經全部被換到了記憶體空間,
如果出現幾百MB設定GB級別的swap時,說明redis的記憶體壓力極大,會變慢,這個時候就需要解決這個問題,
四、解決Redis swap
最直接的辦法就是增大redis實體所在機器的記憶體,
集群部署的redis可以通過增加實體個數,減少每個實體所需要的記憶體,
另外一個辦法就是把redis單獨部署,不要和其他應用程式一起部署,這也是比較常規的實踐,同時也避免了cpu的競爭,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/255113.html
標籤:NoSQL
上一篇:AOF寫入和AOF重寫對redis的阻塞以及解決方案
下一篇:Redis學習筆記:命令
