防偽碼:沒有相當程度的孤獨是不可能有內心的平和。
1、環境準備
主機名 | IP | 系統 |
redis-01 | 192.168.10.24 | CentOS release 6.9 (Final) |
Redis安裝比較簡單,官網下載界面就有參考:
https://redis.io/download
2、安裝
# 創建安裝目錄 mkdir /app # 下載redis4.0.0 cd /opt wget http://download.redis.io/releases/redis-4.0.0.tar.gz # 解壓并安裝 tar zxf redis-4.0.0.tar.gz -C /app cd /app/redis-4.0.0 make make PREFIX=/app/redis install # 配置環境變量: export PATH=/app/redis/bin/:$PATH echo "export PATH=/app/redis/bin/:$PATH">>/etc/profile
3、啟動
redis-server /app/redis-4.0.0/redis.conf # 出現報錯: 4631:M 20 Jul 16:01:04.624 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 4631:M 20 Jul 16:01:04.624 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 4631:M 20 Jul 16:01:04.624 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
解決告警1:
echo 511 > /proc/sys/net/core/somaxconn
解決告警2:
echo "vm.overcommit_memory=1" > /etc/sysctl.conf sysctl vm.overcommit_memory=1
overcommit_memory參數說明:
可選值:0、1、2。
0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,并把錯誤返回給應用進程。
1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何,即最大限度使用內存。
2, 表示內核允許分配超過所有物理內存和交換空間總和的內存
Linux對大部分申請內存的請求都回復"yes",以便能跑更多更大的程序。因為申請內存后,并不會馬上使用內存。這種技術叫做Overcommit。當linux發現內存不足時,會發生OOM killer(OOM=out-of-memory)。它會選擇殺死一些進程(用戶態進程,不是內核線程),以便釋放內存。
當oom-killer發生時,linux會選擇殺死哪些進程?選擇進程的函數是oom_badness函數(在mm/oom_kill.c中),該函數會計算每個進程的點數(0~1000)。點數越高,這個進程越有可能被殺死。每個進程的點數跟oom_score_adj有關,而且oom_score_adj可以被設置(-1000最低,1000最高)。
解決告警3:
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'>>/etc/rc.local
查看是否成功啟動:
[root@redis-01 ~]#ps -ef|grep redis root 27905 1437 0 16:53 pts/0 00:00:00 redis-server 127.0.0.1:6379 root 27910 1437 0 16:53 pts/0 00:00:00 grep --color=auto redis [root@redis-01 ~]#lsof -i :6379 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME redis-ser 27905 root 6u IPv4 35926 0t0 TCP localhost:6379 (LISTEN)
關閉redis:
redis-cli shutdown
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。