perf(redis): 优化 Redis 配置并添加资源限制

- 为 Redis 添加 ./data/redis:/data 持久化挂载
- 在 redis.conf 中设置 maxmemory 2gb 限制内存使用
- 禁用 RDB 快照,启用 appendfsync everysec 避免 OOM
- 在 docker-compose.yml 中为 Redis 添加 mem_limit: 2g 和 memswap_limit: 2g
- 为 MongoDB 添加 --wiredTigerCacheSizeGB 1.5 和 mem_limit: 2500m
- 为 easyai-server 添加 mem_limit: 2200m 内存限制
- 更新 README.md 文档说明 Redis 资源护栏和迁移步骤
This commit is contained in:
2026-06-22 23:20:40 +08:00
parent 42ef68857d
commit 0aebe62f70
3 changed files with 42 additions and 10 deletions
+6
View File
@@ -67,6 +67,7 @@ services:
- ./data/tmp:/tmp
# - ./data/backend/pm2.config.js:/app/pm2.config.js
restart: unless-stopped
mem_limit: 2200m
environment:
# MongoDB配置,用户管理,不会配置的话保持默认即可
- CONFIG_DB_MONGO_URI=mongodb://172.21.0.3:27017
@@ -189,6 +190,8 @@ services:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD}
command: [ "mongod", "--wiredTigerCacheSizeGB", "1.5" ]
mem_limit: 2500m
volumes:
# - /usr/local/mongo/data:/data/db
- mongo_data:/data/db # 使用docker volume存储数据,提高性能,避免兼容性问题
@@ -210,7 +213,10 @@ services:
restart: always
volumes:
- ./redis.conf:/etc/redis/redis.conf # 挂载本地 redis.conf
- ./data/redis:/data # 持久化 Redis AOF/RDB,避免落到容器写层
command: [ "redis-server", "/etc/redis/redis.conf" ] # 让 Redis 读取配置文件
mem_limit: 2g
memswap_limit: 2g
# ports:
# - ${REDIS_PORT+${REDIS_PORT}:6379}
# read_only: true