chore: tune easyai-server native memory settings

This commit is contained in:
wangbo 2026-06-29 20:54:18 +08:00
parent 2a7f5444bf
commit efd843b1b2
3 changed files with 13 additions and 5 deletions

View File

@ -23,10 +23,14 @@ WEB_PORT=3010
SERVER_HTTP_PORT=3001
# easyai-server 后端 HTTP 端口
NODE_MAX_OLD_SPACE_SIZE=1536
# easyai-server V8 heap 上限,单位 MB
MALLOC_ARENA_MAX=2
# 限制 glibc native heap arena降低 sharp/libvips 场景下 RSS 膨胀
MALLOC_TRIM_THRESHOLD_=131072
# glibc 更积极 trim 空闲 top chunk降低 native RSS 高水位
MALLOC_MMAP_THRESHOLD_=131072
# 较大的 native 分配更倾向 mmap释放后更容易归还 OS
MALLOC_TOP_PAD_=131072
# 降低 trim 后额外保留的 heap padding
SHARP_CACHE_ENABLED=false
# 默认关闭 sharp/libvips 全局 cache需要开启时再配置 SHARP_CACHE_* 参数
SHARP_CONCURRENCY=1

View File

@ -101,9 +101,10 @@ Windows 下使用 `update.ps1`,功能与 Linux 版一致:
### 2026.06.24
1. **主服务 sharp/native 内存护栏**`easyai-server` 默认关闭 sharp/libvips cache并将 sharp 并发限制为 1同时设置 `MALLOC_ARENA_MAX=2`,降低图片处理和大 Buffer 场景下 native RSS 持续膨胀风险。
2. **生图 base64 输出收敛**:模型返回的 base64 图片会先上传到 OSS返回对象和 raw/debug 响应中不再长期保留大 base64 字符串。
3. **重启要求**:该内存护栏必须在新进程启动时生效,更新后需执行 `docker compose up -d easyai-server` 或重建并重启主服务容器。
1. **主服务 sharp/native 内存护栏**`easyai-server` 默认关闭 sharp/libvips cache并将 sharp 并发限制为 1同时设置 `MALLOC_ARENA_MAX=2`、`MALLOC_TRIM_THRESHOLD_=131072`、`MALLOC_MMAP_THRESHOLD_=131072`、`MALLOC_TOP_PAD_=131072`,降低图片处理和大 Buffer 场景下 native RSS 持续膨胀风险。
2. **重 native 操作隔离**遮罩合并、alpha 反转等 sharp/raw 操作改为一次性子进程执行,处理完成后由 OS 回收子进程 native heap避免主服务 `[heap]` 被撑大。
3. **生图 base64 输出收敛**:模型返回的 base64 图片会先上传到 OSS返回对象和 raw/debug 响应中不再长期保留大 base64 字符串。
4. **重启要求**:该内存护栏必须在新进程启动时生效,更新后需执行 `docker compose up -d easyai-server` 或重建并重启主服务容器。
### 2026.06.22

View File

@ -73,6 +73,9 @@ services:
- CONFIG_DB_MONGO_USERNAME=${MONGO_INITDB_ROOT_USERNAME}
- CONFIG_DB_MONGO_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD}
- MALLOC_ARENA_MAX=${MALLOC_ARENA_MAX:-2}
- MALLOC_TRIM_THRESHOLD_=${MALLOC_TRIM_THRESHOLD_:-131072}
- MALLOC_MMAP_THRESHOLD_=${MALLOC_MMAP_THRESHOLD_:-131072}
- MALLOC_TOP_PAD_=${MALLOC_TOP_PAD_:-131072}
- SHARP_CACHE_ENABLED=${SHARP_CACHE_ENABLED:-false}
- SHARP_CONCURRENCY=${SHARP_CONCURRENCY:-1}
# Redis配置队列缓存不会配置的话保持默认即可