防伪码:没有相当程度的孤独是不可能有内心的平和。
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
本文出自 “简明Linux” 博客,请务必保留此出处http://easylinux.blog.51cto.com/9732761/1949434
原文地址:http://easylinux.blog.51cto.com/9732761/1949434