您好,登錄后才能下訂單哦!
防偽碼:沒有相當(dāng)程度的孤獨(dú)是不可能有內(nèi)心的平和。
1、環(huán)境準(zhǔn)備
主機(jī)名 | IP | 系統(tǒng) |
redis-01 | 192.168.10.24 | CentOS release 6.9 (Final) |
Redis安裝比較簡(jiǎn)單,官網(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、啟動(dòng)
redis-server /app/redis-4.0.0/redis.conf # 出現(xiàn)報(bào)錯(cuò): 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)用進(jìn)程使用;如果有足夠的可用內(nèi)存,內(nèi)存申請(qǐng)?jiān)试S;否則,內(nèi)存申請(qǐng)失敗,并把錯(cuò)誤返回給應(yīng)用進(jìn)程。
1, 表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何,即最大限度使用內(nèi)存。
2, 表示內(nèi)核允許分配超過所有物理內(nèi)存和交換空間總和的內(nèi)存
Linux對(duì)大部分申請(qǐng)內(nèi)存的請(qǐng)求都回復(fù)"yes",以便能跑更多更大的程序。因?yàn)樯暾?qǐng)內(nèi)存后,并不會(huì)馬上使用內(nèi)存。這種技術(shù)叫做Overcommit。當(dāng)linux發(fā)現(xiàn)內(nèi)存不足時(shí),會(huì)發(fā)生OOM killer(OOM=out-of-memory)。它會(huì)選擇殺死一些進(jìn)程(用戶態(tài)進(jìn)程,不是內(nèi)核線程),以便釋放內(nèi)存。
當(dāng)oom-killer發(fā)生時(shí),linux會(huì)選擇殺死哪些進(jìn)程?選擇進(jìn)程的函數(shù)是oom_badness函數(shù)(在mm/oom_kill.c中),該函數(shù)會(huì)計(jì)算每個(gè)進(jìn)程的點(diǎn)數(shù)(0~1000)。點(diǎn)數(shù)越高,這個(gè)進(jìn)程越有可能被殺死。每個(gè)進(jìn)程的點(diǎn)數(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
查看是否成功啟動(dòng):
[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
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。