十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
防伪码:没有相当程度的孤独是不可能有内心的平和。
成都创新互联公司是网站建设专家,致力于互联网品牌建设与网络营销,专业领域包括网站设计制作、网站设计、电商网站制作开发、小程序开发、微信营销、系统平台开发,与其他网站设计及系统开发公司不同,我们的整合解决方案结合了恒基网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,且不断评估并优化我们的方案,为客户提供全方位的互联网品牌整合方案!
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