故障排查
已收录文章:71篇
-
本文用服务启动失败的场景,演示如何用 ss、lsof、ps 定位占用端口的进程,并根据业务归属选择停止旧进程、修改端口或回收僵尸进程。360 收藏
-
用 openat2 的 resolve 约束限制不可信相对路径,分清 RESOLVE_BENEATH 与 RESOLVE_IN_ROOT 的边界,并处理 EXDEV、EAGAIN 和内核兼容性验收。356 收藏
-
Redis Sentinel 触发故障转移后,看到某个 Sentinel 报了 SDOWN 并不代表切换已经完成。本文用 ROLE、INFO replication、SENTINEL master 和 switch-master 事件,核对 ODOWN、主节点提升、从节点重挂与应用重连四个结果,给出可回滚的验收清单。356 收藏
-
文章 · java教程 | 1个月前 | 故障排查 · Java教程 · 虚拟线程 · synchronized reentrantlock 虚拟线程 JFR Java 21 VirtualThreadPinnedJava 21 虚拟线程并不是开得越多越快。只要把慢 I/O 放进 synchronized,虚拟线程就可能 pin 住承载它的平台线程,吞吐随并发上升反而下降。本文用 JFR 和 tracePinnedThreads 还原定位过程,并给出锁替换与版本边界。343 收藏
-
文章 · linux | 1个月前 | Linux · 故障排查 · 服务管理 · Linux 服务状态 active exited Type=oneshot RemainAfterExit 常驻进程服务状态显示 active (exited) 不一定代表进程仍在运行。本文拆解 oneshot 服务的状态含义,给出常驻服务与一次性任务的判断、配置改法和复测命令。331 收藏
-
Redis 设置了 EXPIRE,业务却发现旧缓存没有在整点消失,通常不是 TTL 失效,而是过期判定、删除时机和监控口径混在了一起。本文从过期键残留现场出发,拆解惰性删除与定期扫描的边界,给出可复查的命令、通知配置和生产处理建议。331 收藏
-
Linux 的 page cache 占用高不等于内存泄漏,本文从 free、top、slab 和回收验证入手,区分缓存、进程匿名内存与内核对象的边界。331 收藏
-
从 MySQL 8.4 InnoDB purge lag 入手,讲清 history list length、长事务、undo 暴涨和 purge 参数的生产排障方法。326 收藏
-
文章 · python教程 | 1个月前 | 并发 · python · logging · 故障排查 · 优雅停机 日志丢失 QueueHandler 日志队列 Python QueueListenerPython 用 QueueHandler 把日志交给后台线程后,停机阶段不能只依赖进程退出。本文从日志资产、队列排空、监听器停止和异常收尾四个边界出发,给出一套可复查的优雅停机写法。316 收藏
-
Golang · Go问答 | 1个月前 | 并发 · 故障排查 · Go问答 · encoding/json · encoding/json atomic.Value Go配置热加载 Decoder 配置复用 旧值残留Go 服务热加载 JSON 配置时,偶发读到旧值通常不是文件没有更新,而是解码目标被复用、缺失字段没有覆盖旧内容,或读写过程没有通过不可变快照切换。本文从一次线上故障切入,给出可复现证据、修复代码和回归检查。311 收藏
-
Linux 文件监控收到 IN_Q_OVERFLOW,不只是把 max_queued_events 调大就结束了。本文从队列溢出的含义、内核参数、消费者处理速度和恢复流程入手,给出可核对的排查命令与重建监控状态的方法。305 收藏
-
从账号唯一键和昵称搜索踩坑切入,讲清 MySQL 8.x utf8mb4_0900_ai_ci、大小写/重音敏感、collation 混用、隐式转换与索引命中验证。294 收藏