防偽碼:沒有相當(dāng)程度的孤獨是不可能有內(nèi)心的平和。
成都創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、電商網(wǎng)站制作開發(fā)、小程序開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
1、環(huán)境準備
主機名 | IP | 系統(tǒng) |
redis-01 | 192.168.10.24 | CentOS release 6.9 (Final) |
Redis安裝比較簡單,官網(wǎng)下載界面就有參考:
https://redis.io/download
2、安裝
# 創(chuàng)建安裝目錄 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 # 配置環(huán)境變量: 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 # 出現(xiàn)報錯: 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參數(shù)說明:
可選值:0、1、2。
0, 表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應(yīng)用進程使用;如果有足夠的可用內(nèi)存,內(nèi)存申請允許;否則,內(nèi)存申請失敗,并把錯誤返回給應(yīng)用進程。
1, 表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何,即最大限度使用內(nèi)存。
2, 表示內(nèi)核允許分配超過所有物理內(nèi)存和交換空間總和的內(nèi)存
Linux對大部分申請內(nèi)存的請求都回復(fù)"yes",以便能跑更多更大的程序。因為申請內(nèi)存后,并不會馬上使用內(nèi)存。這種技術(shù)叫做Overcommit。當(dāng)linux發(fā)現(xiàn)內(nèi)存不足時,會發(fā)生OOM killer(OOM=out-of-memory)。它會選擇殺死一些進程(用戶態(tài)進程,不是內(nèi)核線程),以便釋放內(nèi)存。
當(dāng)oom-killer發(fā)生時,linux會選擇殺死哪些進程?選擇進程的函數(shù)是oom_badness函數(shù)(在mm/oom_kill.c中),該函數(shù)會計算每個進程的點數(shù)(0~1000)。點數(shù)越高,這個進程越有可能被殺死。每個進程的點數(shù)跟oom_score_adj有關(guān),而且oom_score_adj可以被設(shè)置(-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)
關(guān)閉redis:
redis-cli shutdown