兄弟们,最近在搞AI基础设施部署,踩了不少坑,分享点干货。如果你正用Kubernetes跑大模型推理服务,比如Llama 3 70B或Mixtral 8x7B,这几个关键配置一定要调优,不然性能直接拉胯。
1. **GPU显存分配**:别用默认的“request=limit”写法。实测发现,显存预留(Guaranteed QoS)反而导致碎片化。建议用“requests”设为模型加载所需最低值(比如70B模型约140GB VRAM),而“limits”设成物理显存的80%,留出20%给FRAG和缓存。这样在NVIDIA A100上,吞吐量能提升15-20%。
2. **NUMA绑定**:大模型的张量并行(TP)依赖跨GPU通信,跨NUMA节点时延迟飙升30%+。用“nodeAffinity”指定同一个NUMA域内的GPU,比如A100 80GB有2个NUMA节点,一定要把4张卡绑在同一NUMA上。参考NVIDIA的“gpu-direct”策略,效果显著。
3. **HPA策略**:别用CPU-based自动缩放。大模型推理是I/O密集型,CPU利用率低但显存常满。用“custom-metrics-api”监控“cuda:memory_used”或“llm:queue_depth”触发扩容。比如队列深度超过50时,先预热Pod再接入流量,避免冷启动带来的“Ttft(首token延迟)”飙升。
4. **网络优化**:使用Calico的“eBPF”数据平面代替iptables,结合“hostNetwork”模式,能减少25%的网络抖动。多节点推理时,记得开“NUMA-aware TCP”,这在HuggingFace TGI的部署文档里被严重低估。
这些调优数据来自我们内部压测,当前最好的组合是:A100 40GB × 4 + NVIDIA Triton + K8s 1.28 + Calico eBPF。如果你们也在搞,聊聊你遇到的坑? |