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:
@@ -99,6 +99,35 @@ Windows 下使用 `update.ps1`,功能与 Linux 版一致:
|
||||
|
||||
## 重要更新记录:
|
||||
|
||||
### 2026.06.22
|
||||
|
||||
1. **Redis 资源护栏**:Redis 增加 `./data/redis:/data` 持久化挂载、`maxmemory 2gb`、`appendfsync everysec`,并禁用 RDB 快照,避免队列历史膨胀后占满内存和容器写层。
|
||||
2. **Mongo/主服务内存限制**:Mongo 增加 `--wiredTigerCacheSizeGB 1.5` 和容器内存限制,`easyai-server` 增加内存限制,避免 8G 机器上 Redis/Mongo/Node 相互挤压触发 OOM。
|
||||
3. **升级前置要求**:如果线上 Redis 之前没有 `/data` volume,先完成 Redis request-limit 队列历史清理,再迁移 Redis 数据目录,最后重建 Redis 容器。
|
||||
|
||||
#### Redis 数据迁移与重启步骤
|
||||
|
||||
执行前建议先做云盘快照或外部备份。磁盘空间紧张时,不要直接在当前机器上 `BGSAVE` 或复制大体积 Redis 文件。
|
||||
|
||||
```bash
|
||||
cd ~/easyai
|
||||
|
||||
# 1. 先通过后台 ModelRuntime 运维接口或后端启动清理逻辑清理 request-limit 历史:
|
||||
# - trim bull:request_limit_*:events 到小长度
|
||||
# - 只清 completed/failed,不删除 waiting/active/delayed
|
||||
|
||||
# 2. 确认 Redis 内存已经下降后,再准备新的持久化目录
|
||||
mkdir -p ./data/redis
|
||||
|
||||
# 3. 如果旧 Redis 数据在容器写层,先按实际容器内 /data 内容迁移到宿主机目录
|
||||
docker cp redis:/data/. ./data/redis/
|
||||
|
||||
# 4. 更新配置后重建关键容器
|
||||
docker compose up -d redis mongo easyai-server
|
||||
```
|
||||
|
||||
迁移后验收建议:Redis `used_memory_human < 2G`,`bull:request_limit_*:events` 长度维持在小窗口,24 小时内无 OOM。
|
||||
|
||||
### 2026.3.20
|
||||
|
||||
1. **新增 Agent 记忆服务(AMS)模块**:新增 `agent-memory`(Agent 长期记忆)容器,复用 `easyai-pgvector` 数据库(需 pgvector 扩展),用于支持 Agent 对话记忆、向量召回与反馈能力。
|
||||
|
||||
Reference in New Issue
Block a user