自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

昨日种种,皆成今我。今日种种,皆成新我。

专注 AI Agent 工程化与大模型应用开发,持续分享 Agent 接入、Tool Calling、MCP、RAG、Memory、多 Agent、工作流编排、LangGraph、FastAPI 服务化与生产部署等实战内容。

  • 博客(176)
  • 收藏
  • 关注

原创 Pod 报 OOMKilled 还是 CrashLoopBackOff?退出码 137 与 1 的排查路径完全不同

容器反复重启时,137 常被当成 OOM 处理,加内存无效。用 jsonpath 取退出码、用 oom_kill 计数定性,分别指向内核与应用层。

2026-11-06 18:00:23 32

原创 DDP多卡eval精度比单卡低3%,先查BN别先怪梯度

多卡评估精度比单卡低约3个百分点,常被误判为梯度问题。根因是BatchNorm各rank用本地统计量归一化,可同步修复。该修复须在DDP包装前替换BN层,单卡与无进程组场景不宜使用。

2026-11-06 13:30:18 41

原创 同一输入两次推理结果不同:PyTorch非确定性三层排查,eval只修第一层

推理服务同一输入两次返回不同结果,灰度对比与问题复现都失去依据。按现象逐层定位,先确认训练模式残留,再排查算法调优与线程归约差异。严格确定性在部分算子上不可得,需在工程容差与数学一致间取舍。

2026-11-06 09:00:17 47 1

原创 loss 变 nan 无报错:isnan 插桩与 detect_anomaly 谁先谁后

训练中 `loss` 突然变 `nan` 却无异常堆栈可查,排查此类数值问题最为耗时。先用 `isnan` 统计输入确认 `nan` 首现位置,再用反向异常检测追到出问题的算子。

2026-11-05 18:00:19 201 1

原创 fine-tune后准确率不升反降?LabelEncoder两次fit标签错位才是根因

fine-tune 后验证准确率反降,常被误判为模型问题,真因是标签编码不一致。排查覆盖从异常到根因的路径,用最小示例复现,并对比统一 fit 与固定类别两种修复。

2026-11-05 13:30:18 265 2

原创 HPA 扩容不生效:为什么设了 10 副本却停在 1 个,先查 metrics-server

生产集群里 stress-app 跑着 1 个副本,HPA 配了 minReplicas: 1、maxReplicas: 10、CPU 目标 50%。

2026-11-05 09:00:21 307 3

原创 PyTorch训练进Docker静默卡死:strace卡shm调用,默认64MB

文中命令与代码块可直接复制执行,未实测的结论均已单独标注。文中给出了可复现的环境与操作步骤,并标注了哪些结论已经验证、哪些仍属推测。

2026-11-04 18:00:20 202 3

原创 torch.compile 差异仅 1e-6,边界样本预测为何翻转

torch.compile 加速后输出与 eager 不一致,部分预测翻转。逐层对比与 graph break 分析定位到动态分支翻转根因。容差回归仅适用于无分支翻转场景,零容忍场景应禁用编译。

2026-11-04 13:30:18 152 1

原创 Docker 容器时间差 8 小时,加了 TZ 环境变量仍不生效的三个根因

容器时间差八小时,补上 TZ 仍输出 UTC,日志全错。三个根因是数据缺失、localtime 未同步、应用自行解析。根治需构建期装 tzdata 并同步 localtime,仅设 TZ 无效。

2026-11-04 09:00:21 283 1

原创 PyTorch显存剩余6GB仍报OOM:降batch无效,根因是碎片化

训练报 CUDA OOM 但显存充足,矛盾常误导排查方向。根因是 caching allocator 碎片化,空闲块够但不连续。适用边界是降 batch 无效且非外进程占用的偶发 OOM。

2026-11-03 18:00:20 336 2

原创 MySQL 加了索引反而更慢:3 万行回表让 Spring Boot 接口从 80ms 涨到 1.4s

接口加索引后从 80ms 涨到 1.4s,并发稍高就拖垮 Pod。用 EXPLAIN ANALYZE 定位 3 万次回表根因,以覆盖索引消除回表。

2026-11-03 13:30:21 499 3

原创 MySQL 8.0 加了联合索引查询反而更慢:3 种失效与回表实测

加了联合索引反而更慢,EXPLAIN 显示 key 命中也难提速。拆解最左前缀断裂、隐式转换与非覆盖回表三类失效并给出可运行示例。排查适用于大表低选择性场景,小表及高选择性索引无需此流程。

2026-11-03 09:00:20 344 3

原创 FastAPI 接口返回 coroutine 对象:漏写 async 时的三种症状与定位

FastAPI 漏写 await 会静默返回 coroutine,副作用丢失。从响应体字符串、日志空白、副作用消失三种症状逐层定位。修复需对齐路由与函数的同步异步声明,行为随版本变化需实测确认。

2026-11-02 17:59:22 167 2

原创 Spring Boot 3.2 偶发500无日志:线程池复用导致请求上下文丢失

线上接口偶发 500,按 traceId 查不到对应异常堆栈。根因是 MDC 未跨线程传递,用 TaskDecorator 在任务前后恢复即可。

2026-11-02 13:53:56 334 1

原创 Alpine 让镜像小了 30%,Java 服务 DNS 解析反而更慢:musl 与 glibc 实测

Java镜像拖慢CI拉取,换Alpine后DNS解析反而变慢。根因是musl换掉解析器,瘦身应保留glibc并裁剪JRE。无glibc依赖、连接复用、DNS稳定时才值得换Alpine。

2026-11-02 12:32:32 279

原创 MySQL 查询突然慢 10 倍,索引没错,是统计信息没更新

批量变更后查询突慢 10 倍,索引无误,根因是统计信息过期。用 `EXPLAIN ANALYZE` 对比估算与实际行数即可确诊。`ANALYZE TABLE` 可修复,但极端偏斜分布需直方图统计。

2026-11-01 17:00:19 95 2

原创 PostgreSQL 建了索引仍然全表扫描:1000 万行表 ANALYZE 前后的执行计划对比

1000 万行表建好索引,查询仍走全表扫描,先怀疑索引往往查不到根因。用 EXPLAIN 对比 ANALYZE 前后执行计划,可看到默认选择率 0.005 如何让优化器放弃索引。

2026-11-01 13:00:20 180 3

原创 近期技术热点:从异常现象到根因定位的完整排查

变长序列下编译器按输入 shape 分别编译,频繁重编译使训练更慢。用调试工具和可复现示例完成从现象到根因到修复的排查链路。适用于 shape 不固定的任务,shape 固定场景无需此排查。

2026-11-01 09:00:16 202 3

原创 Docker 多阶段构建把镜像从 1.2GB 压到 90MB,为什么 COPY --from 反而更容易踩权限坑

文中命令与代码块可直接复制执行,未实测的结论均已单独标注。文中给出了可复现的环境与操作步骤,并标注了哪些结论已经验证、哪些仍属推测。

2026-10-31 17:00:23 208 2

原创 PostgreSQL 加索引后查询反而更慢:优化器弃用索引的 3 种情形

生产库中给过滤列加索引后,相同查询的执行时间不降反升。成本驱动优化器因候选路径变化重新估算成本,可能选择实际更差的计划。该现象取决于数据分布、存储 I/O 特性和成本参数,不同环境表现差异较大。

2026-10-31 13:00:21 199 2

原创 虚拟线程压到 1 万并发,HikariCP 还是 10 连接:Spring Boot 3.2 池大小怎么算

虚拟线程 1 万并发,HikariCP 默认 10 连接耗尽。池大小按目标 TPS 和 SQL 耗时反推,受 MySQL 上限约束。公式仅适配 JDBC 同步模型,异步或读多写少场景需另选。

2026-10-31 09:00:22 164 3

原创 Milvus 索引不重建也能查:为什么召回率悄悄掉到随机水平

换 Embedding 模型却不重建索引,查询不报错但召回率悄悄跌至随机。通过 IVF_PQ 双层失配机制复现相似度趋同,给出灰度切换方案。适用于新旧模型维度相同的场景,维度变更时查询直接报错。

2026-10-30 17:00:22 212 3

原创 MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s

线上订单加联合索引后从 200ms 变 8 秒,索引命中却更慢。根因是 MySQL 8.0 偏好免排序索引,低选择性前缀致回表暴涨。仅适用于非覆盖索引场景,统计信息过期需先刷新再判断。

2026-10-30 13:02:18 146 2

原创 PostgreSQL 查询突然变慢:索引明明存在却走了全表扫描,先查这 3 处

PostgreSQL 索引明明存在,查询却突然走全表扫描,这是线上非常常见的慢查询诱因。从统计信息漂移、隐式类型转换、函数包装三个机制归因,用可复现示例演示修复方案。

2026-10-30 09:00:21 9 3

原创 JDK 21 虚拟线程压测吞吐反而降三成:synchronized 锁住载体线程的排查过程

开启虚拟线程后压测吞吐不升反降,根因是 `synchronized` 块内的阻塞操作会把载体线程钉住。本文用单文件零依赖基准做四组对照实验,量化定位该机制并给出改造方案。

2026-10-29 15:25:32 143 4

原创 EXPLAIN BUFFERS 里 200 万次 shared read:PostgreSQL 慢查询卡在哪一步

线上建了索引仍 Seq Scan,查询从毫秒级恶化到秒级。EXPLAIN BUFFERS 定位隐式转换等四类根因并量化各节点读取量。

2026-10-29 13:58:21 294 2

原创 float16训练loss变NaN:65504上限溢出传染全网络,梯度裁剪为何救不了

float16训练loss骤变NaN,排查费时易误判。核心是65504上限,还原溢出传染NaN链路,用autocast修复。仅适用于低精度溢出排查,不适用于梯度爆炸等不稳定问题。

2026-10-29 09:26:02 133 3

原创 近期技术热点:从异常现象到根因定位的完整排查

结论先行:挂起的根因不在训练代码,而在容器 /dev/shm 默认只有 64MB。文中命令与代码块可直接复制执行,未实测的结论均已单独标注。

2026-10-28 15:00:18 179 1

原创 近期技术热点:从异常现象到根因定位的完整排查

梯度裁剪顺序或scaler重复创建会让AMP loss静默变NaN。复现三个隐蔽失败场景,给出可操作的排查路径与修复写法。适用于PyTorch 2.x,BF16无需GradScaler。

2026-10-28 12:00:19 195 1

原创 同类方法自调用,Spring Boot 的 @Transactional 为何完全不生效?3 行代码复现

Service 自调用同类方法时 `@Transactional` 静默失效,异常抛出后数据仍落库。3 行代码复现并解释代理被跳过的机制,同时对比五种修复方案。

2026-10-28 09:00:21 167 3

原创 虚拟线程上线后吞吐反而掉了:Spring Boot 3 里 synchronized 锁住载体线程的定位与修复

开启虚拟线程后吞吐不升反降,5000 并发反而输给固定线程池基线。根因是 `synchronized` 钉住载体线程,改用 `ReentrantLock` 即可解开。

2026-10-27 15:00:21 742 4

原创 K8s 探针超时设短了反而触发重启:CrashLoopBackOff 的排查路径

liveness 探针默认超时 1 秒,启动阶段健康检查持续失败,反复触发容器重启。需从集群事件定位失败原因,实测健康接口耗时后再选择修复方案。

2026-10-27 12:00:22 272 1

原创 Spring Boot 3 启动报循环依赖异常,为什么以前能跑的代码现在起不来

升级 Spring Boot 3 后启动即报循环依赖,常被误判为新版本的坑。其实默认禁止注入成环从 2.6 就已生效,需先复现报错并拆解注入链。

2026-10-27 09:00:21 342 3

原创 为什么 Redis 主从切换会丢锁:3 种补偿策略实测对比

主从切换丢失分布式锁,两台 Pod 同时持锁导致重复扣款。对比 WAIT、Fencing Token、幂等去重三种补偿策略的代价。WAIT 仅降低丢失概率,强一致场景仍需 ZooKeeper。

2026-10-26 15:00:21 352 3

原创 python:3.12 镜像 1.2GB,多阶段构建后只剩 95MB:省了什么丢了什么

Python 服务用全量镜像部署,体积 1.2GB,CI 构建超过 12 分钟。多阶段构建配合 slim 基底可将最终镜像压至 95MB,关键机制是只保留最后 FROM 阶段的层。

2026-10-26 12:00:26 255 2

原创 为什么给Tomcat开虚拟线程后,数据库连接反而更快被耗尽

虚拟线程拆掉了 Tomcat 的线程上限,数据库连接池会在数秒内被打满。平台线程池原本是隐式限流,可用信号量等显式背压替代它。方案适用于下游连接数固定的服务,数据库已是瓶颈时应回到查询与索引优化。

2026-10-26 09:00:26 295 3

原创 rebase后强推丢掉同事3个提交:reflog能救回来,90天以后呢

rebase 后强推覆盖同事提交,多数人以为有 90 天窗口可以找回。实际不可达条目默认 30 天过期,reflog 只在操作机器上存在。方案适用于本机短期恢复,长期依赖服务端或团队规范。

2026-10-25 15:00:26 172 4

原创 近期技术热点:从异常现象到根因定位的完整排查

深度学习训练中 loss 突变为 NaN,根因可能在数据、权重或数值精度等多个层面。按检查成本从低到高逐层排查,可定位第一个非有限值的出现位置。

2026-10-25 12:00:23 188 4

原创 MySQL 联合索引明明命中,ORDER BY 还是 filesort:3 个条件顺序踩坑复现

索引明明命中,ORDER BY 却仍 filesort,线上常被误判为索引失效。复现 RANGE 阻断、方向反序、OR 合并三种坑并给修复写法。仅适用于 8.0,ORDER BY 列需紧跟等值条件。

2026-10-25 09:00:28 182 2

原创 为什么 Spring Boot 3 的虚拟线程没让接口变快:JDK 21 pinning 排查记录

启用虚拟线程后接口吞吐不升反降,根因是请求路径上的native方法调用导致pinning。用tracePinnedThreads定位后将文件I/O迁移到NIO API即可解决。

2026-10-24 15:00:28 350 2

空空如也

springboot错误

2023-11-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除