长跑服务盯三条曲线
长跑服务要盯三条曲线:进程内存占用、显存保留量、文件描述符与线程数。缓慢单调上涨且周期高峰之后不回落,就要采样比对,区分是分配器缓存的正常增长还是真实泄漏。判定的关键是跨天趋势,不是某个时刻的绝对值。
基本信息
| 适用平台 | Linux 上的长跑推理服务 |
|---|---|
| 观察对象 | 进程内存、显存保留量、描述符与线程数 |
| 判定依据 | 连续多天单调上涨且高峰后不回落 |
| 采样方式 | 定时记录指标并存档成表 |
采样命令
采样命令
pid=$(pgrep -f vllm | head -1)
ps -o rss= -p $pid # 进程常驻内存(KB)
ls /proc/$pid/fd | wc -l # 文件描述符数
ls /proc/$pid/task | wc -l # 线程数
nvidia-smi --query-gpu=memory.used --format=csv -l 60判定与处置
- 判定:连续数天单调上涨、周期高峰后不回落,才是泄漏信号
- 对照:重启前后的基线差,以及版本发布时间点
- 处置:短期用定时重启配合排空兜底,长期按最小复现报给上游
- 记录:每次采样存成表格,趋势判断需要跨天数据
- 验证:修复版本上线后用同一条采样命令复核曲线
三条曲线的读法
| 曲线 | 正常表现 | 异常表现 |
|---|---|---|
| 进程内存 | 随负载波动,峰值后回落 | 持续单调上涨 |
| 显存保留量 | 高位平稳 | 缓慢抬升不回落 |
| 描述符与线程 | 稳定在小范围 | 只增不减 |
把采样结果存档成表格:趋势判断需要跨天数据,单点快照说明不了问题。
分配器缓存不等于泄漏:保留量长期高位平稳属于正常现象,先看是否单调上涨。
用定时重启兜底时要配合排空:直接重启会打断在途请求,把可用性问题换成另一类问题。
对比基线要用同一负载:刚重启完立刻测的曲线没有可比性,等流量跑起来之后再判断趋势。
把每次重启的时间点标在曲线上:重启会让曲线归零,标注之后才能看出跨重启的长期趋势。