iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
Software Development

Redis還在學系列 第 3

Day3 Redis伺服器環境設定

作業系統配置

因為Redis Server是在記憶體進行所有的操作,故需要優先在作業系統中配置記憶體使用相關的設定來配合,藉此防止當記憶體不足out of memory時服務不會直接被作業系統處理掉.

  • 編輯sysctl.conf設定檔
vi /etc/sysctl.conf
  • 寫入sysctl.conf設定檔
# 0 返回錯誤給應用程式(預設) 
# 1 可以讓應用程式繼續取用至耗盡所有記憶體
# 2 限制應用程式最大可以用50% memory + swap
vm.overcommit_memory=1

# 可連線數
net.core.somaxconn= 32767

https://ithelp.ithome.com.tw/upload/images/20210918/20111658X5kH3XIa1K.png

Redis Server可以開啟的檔案數量,可以參考以下官方的建議進行設定.

  • 編輯limits.conf設定檔
vi /etc/security/limits.conf
  • 寫入limits.conf設定檔
#Redis
redis soft nproc 65535
redis hard nproc 65535
redis soft nofile 65535
redis hard nofile 65535

https://ithelp.ithome.com.tw/upload/images/20210918/201116581NcwH7ZVgN.png

  • 確認是否memory有受os系統限制
#check max memory size = unlimited
ulimit -a

https://ithelp.ithome.com.tw/upload/images/20210918/20111658SoENswvPJ1.png

  • 編輯selinux config (暫時關閉)
vi /etc/selinux/config

#關閉SELINUX
SELINUX=disabled

https://ithelp.ithome.com.tw/upload/images/20210918/20111658uNUgPUTKJK.png

  • 目前Redis不支援Hugepages
#關閉Hugepages
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag

https://ithelp.ithome.com.tw/upload/images/20210918/20111658goEHntPASU.png

  • Swap使用機制

因Swap為透過硬碟進行操做,效率會比記憶體來得慢,需要特別注意配置使用.

# 預設
echo 60 > /proc/sys/wm/swappiness

# 當記憶體不足時,禁止使用Swap空間,此時Redis Server就會出現out of memory的錯誤,服務會被作業系統關閉
echo 0 > /proc/sys/wm/swappiness

# 當可用記憶體很小且有可能發生out of memory時,才會使用Swap Out
echo 1 > /proc/sys/wm/swappiness

# 提高使用Swap In 與Swap Out的頻率,此應用通常為系統配置較大的記憶體容量
echo 10 > /proc/sys/wm/swappiness

# 頻繁使用Swap In 與Swap Out
echo 100 > /proc/sys/wm/swappiness


上一篇
Day2 Redis基礎介紹
下一篇
Day4 Redis組態檔設定-GENERAL
系列文
Redis還在學30

尚未有邦友留言

立即登入留言