求助:llm 在容器里启动偶发失败,日志如下
网上关于 llm 的文章大多停在「怎么用」,很少有人写「什么时候不该用」。这篇想补上后半句。
排查顺序(按性价比排): 1. 先看下游 RT,八成问题不在自己身上 2. 再看连接池命中率与等待队列长度 3. 然后才是 GC 与内存分配 4. 最后才怀疑框架
顺便说一句,官方文档里这段其实有写,只是藏在一个很不起眼的位置。我是在翻源码注释的时候才发现的,注释里作者解释了为什么这么设计 —— 大意是「为了在极端情况下退化成可预期的行为」。
最后提醒一个坑:容器环境下一定要记得同步调整内存相关的参数,否则宿主机的限制和进程内部的预期会对不上,表现就是偶发的、无法复现的失败。
监控这块我们也顺手改了:把原来的平均值告警换成分位数,并且按接口拆分。改完之后误报少了大概七成,值班同学的怨气肉眼可见地下降了。