1.通过 docker-compose安装
docker pull Redis 拉取镜像
version: ‘6.2.5’ # 我设置的是Redis版本号,方便查看
services:
ets-saas-redis:
image: redis
container_name: ets-saas-redis
volumes:
- /root/Volumes/Redis:/data #data目录挂载
- /root/Volumes/Redis/redis.conf:/usr/local/etc/redis/redis.conf #容器内部conf映射到本机目录
- /root/Volumes/Redis/logs:/logs
command:
/bin/bash -c "redis-server /usr/local/etc/redis/redis.conf" # 指定配置文件
expose:
- 6379
ports:
- 30003:6379
#映射到外部端口30003
sysctls:
net.core.somaxconn: 2048
#设置链接数默认是128
networks:
- internal-network
restart: always
networks:
internal-network:
external: true
2.docker logs
2.1 docker logs --tail=200 -f core-service-3-saas 查看redis运行日志
如下三条警告:
- Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
- The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
- 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
- you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix thisissue 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 thesetting after a reboot. Redis must be restarted after THP is disabled.
1、在docker-compose中指定使用的配置文件
command: /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf"
详细的配置解析参照 https://www.cnblogs.com/jinit/p/13739191.html
2、docker-compose中加入以下代码,我照网上的教程修改了系统的参数之后,无效。后来查了文档在容器启动的时候设置
sysctls:
net.core.somaxconn: 2048
3、将vm.overcommit_memory = 1
添加到/etc/sysctl.conf
中,然后执行sysctl -p
生效配置
4、在/etc/rc.local中添加以下代码 我的服务器是centos7 禁用THP (Transparent HugePages)
4.1 查看状态
cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
4.2 永久禁用 在/etc/rc.local 添加以代码
编辑rc.local文件
[root@localhost ~]# vim /etc/rc.d/rc.local
增加以下内容
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
保存退出,然后赋予rc.local文件执行权限:
chmod +x /etc/rc.d/rc.local
最后重启系统,以后再检查THP应该就是被禁用了
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
参考链接: https://blog.csdn.net/jiangbenchu/article/details/108727388
https://github.com/redis/redis/issues/6123