DockerCompose运行redis 6 alpine性能测试优化

头像
码农笔录
2021-10-08 运维 阅读量 2998

1.编写docker-compose文件

编写redis.yml,network_mode为host这样可以减少网卡资源消耗,提高性能,如果要求不高可以使用桥接网络,这样端口可以自由映射;调优修改的配置都是修改宿主机的配置。

version: '3'
services:
  redis:
    image: redis:6.0.10-alpine
    container_name: docker_redis
    network_mode: "host"
    restart: always
    volumes:
      - /opt/redis/data:/data:rw
      - /opt/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /opt/redis/logs:/logs
    command:
      redis-server /usr/local/etc/redis/redis.conf

配置文件

requirepass 你的密码
#daemonize yes  #是否开启守护
bind 0.0.0.0
appendonly no  #开启aof缓存,但是要频繁I/O,建议关掉
maxmemory 1024MB  #最大内存限制,否则可能内存撑爆
#maxmemory 3GB
maxmemory-policy volatile-ttl #淘汰策略,如果内存撑爆了不会拒绝插入数据

2.redis 调优

考虑到redis一般都是部署在服务器上作为服务存在的。所以,本文的解决方案都是持久性配置,不是临时配置。

第一个警告
将net.core.somaxconn = 1024添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。

第二个警告
将vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。

第三个警告
将echo never > /sys/kernel/mm/transparent_hugepage/enabled添加到/etc/rc.local中,然后执行source /etc/rc.local生效配置。

3.性能测试

redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -q