故障排查
已收录文章:71篇
-
用 pidfd_open 获取稳定的进程引用,配合 poll 观察退出、waitid 回收状态,解决长驻监控器因 PID 复用误判进程身份的问题。293 收藏
-
文章 · java教程 | 1个月前 | 依赖管理 · Java · JVM · 故障排查 · java 类加载器 ClassNotFoundException NoClassDefFoundError 依赖排查代码在编译阶段明明能找到类,部署后却抛出 NoClassDefFoundError,通常不是类名写错,而是运行时类路径、传递依赖或初始化阶段出了差异。本文用一个可复现的启动故障,拆开编译期可见、运行期加载和初始化失败三个边界,给出定位与修复检查单。269 收藏
-
Jackson 反序列化日期失败,往往不是 JSON 字段不存在,而是输入格式、时区和字段级格式化配置没有对齐。本文从报错现场出发,用 LocalDateTime、Instant 和 OffsetDateTime 三种类型拆开定位路径,并给出可验证的修复方案。256 收藏
-
Go 服务突然出现 too many open files,先别急着把 ulimit 调大。更可靠的顺序是确认进程 FD 是否持续增长,区分网络连接、日志文件和管道,再用 /proc、lsof 与 Go pprof 找到没有关闭的资源,修复后复查增长曲线,必要时保留可回退的上限变更。255 收藏
-
服务开启 PrivateTmp=yes 后,宿主机和服务进程看到的 /tmp 不再是同一个目录。本文用一个临时文件消失的现场,解释配置生效值、主进程和挂载信息的核对顺序,并给出共享临时文件与安全隔离的取舍。254 收藏
-
PHP Generator 结束后进程内存没有回落,往往不是 yield 本身泄漏,而是迭代器仍被引用、foreach 引用残留或 finally 尚未完成。本文用可复现实验拆解判断顺序。254 收藏
-
Java 线程池调用 shutdownNow 后,等待队列会被移出,但正在执行的任务只是收到中断请求,并不等于立刻停止。本文从一次停机任务未收敛的现场出发,拆解中断传播、阻塞调用、任务清理和 awaitTermination 验收方法。252 收藏
-
Java 管理外部子进程时,isAlive、onExit 和 exitValue 解决的是不同问题。本文用一个可复现的小任务拆解退出状态、异步等待、异常处理与句柄回收边界。249 收藏
-
一篇 Java 线上故障排查教程:用 Arthas dashboard、thread、trace、watch 定位 CPU 飙高和慢方法,强调生产环境小范围增强、参数脱敏、reset 清理和复盘闭环。241 收藏
-
MySQL 8.4 的 InnoDB 死锁发生后会自动选择一个事务回滚,但应用仍要识别错误并重试。本文用订单与库存更新场景演示如何读取 SHOW ENGINE INNODB STATUS、开启 innodb_print_all_deadlocks、判断受害事务并验收重试策略。238 收藏
-
复用 Go 的 time.Timer 时,Stop 和 Reset 的行为会受到 Go 版本、定时器是否已经到期以及是否存在并发接收的影响。本文用一个超时重试场景拆开旧版本排空规则、Go 1.23 的同步定时器语义和可验证的停机边界。236 收藏
-
Java NIO WatchService 适合监听目录变化,但它不是变更日志:事件可能合并、丢弃或因 WatchKey 失效而停止通知。本文从注册目录、处理事件、识别 OVERFLOW、去重和全量重扫几个边界,给出一套可复查的实现方式。231 收藏