主机内存常被低估
主机内存常被低估:模型加载缓冲、页缓存、交换空间预留都要占内存。加载阶段被系统杀掉进程的情况,常被误读成模型本身有问题,其实多数时候是内存不够。规划容量时把内存与显存放在一起算,才不会出现这类错判。
基本信息
| 适用平台 | 部署大模型的 Linux 服务器 |
|---|---|
| 关注项 | 加载缓冲、页缓存、交换空间预留 |
| 经验规划 | 内存不低于权重体积的数倍,开交换或页缓存大时继续上浮 |
| 观察工具 | free 与系统内存信息接口 |
核对方法
核对方法
free -h
watch -n 1 free -h # 加载大模型时观察内存峰值典型使用场景
- 加载前评估:按权重体积与并发需求核算内存
- 量化转换:转换脚本自身的峰值内存常被忽略
- 交换空间:开启后同步复核内存预算
- 批量任务:离线任务的内存占用与在线服务不同
内存去向
| 内存用途 | 为什么占 | 异常表现 |
|---|---|---|
| 加载缓冲 | 分片拼接与格式转换 | 加载阶段进程被杀 |
| 页缓存 | 权重文件被系统缓存 | 可用内存偏低但可回收 |
| 交换空间 | 缓存被换出到内存 | 内存长期高位不降 |
经验规划:内存不低于权重体积的数倍;开启交换空间或页缓存较大时继续上浮。
配置联动:启用交换空间或跑量化转换脚本时同步复核内存预算,转换工具自身的峰值常被忽略。
区分页缓存与真实占用:内存被文件缓存占满属于正常现象,系统会在需要时回收。
内存水位也要设告警:加载阶段的内存峰值是有规律的,提前告警比事后翻日志省事得多。
容器部署要显式给内存上限:默认继承宿主内存时,加载阶段可能把整机一起拖慢。