故障排查
已收录文章:51篇
-
删除 MySQL 主表记录时遇到外键失败,原因可能是子表仍有引用、约束动作不是预期,或事务锁尚未释放。本文用订单与订单明细场景区分 RESTRICT、CASCADE 和锁等待,并给出可复现的检查命令。403 收藏
-
Linux 审计日志出现 backlog limit exceeded 时,不能只把队列上限调大。本文从 auditctl 状态、lost 计数和 auditd 内部队列入手,区分内核 backlog、守护进程消费和磁盘轮转三个环节,给出可回滚的处理与复核顺序。391 收藏
-
Redis Streams 使用 XREADGROUP 时,空结果不一定代表没有消息。本文从 BLOCK 超时、已确认消息和 XPENDING 消费者状态三条线核对消息是否真正读到,并给出可复查的命令与边界。382 收藏
-
数据库 · Redis | 2个月前 | Redis · 内存管理 · 故障排查 · 缓存运维 · redis OOM CLIENT NO-EVICT maxmemory-clients noeviction 客户端驱逐Redis 写入报 OOM 时,先区分数据键无法淘汰与客户端输出缓冲触发驱逐。本文用 CLIENT NO-EVICT、maxmemory-clients、maxmemory-policy 和 INFO memory 还原两条故障链,给出核对命令、控制连接保护和回退边界。376 收藏
-
Redis Cluster 扩缩容时,业务抖动通常不是迁移命令本身造成的,而是迁移窗口、客户端重定向、热点槽位和失败收尾没有被单独核对。本文用一套可回滚的检查顺序说明如何安排迁移、观察状态并复查失败槽位。367 收藏
-
用 openat2 的 resolve 约束限制不可信相对路径,分清 RESOLVE_BENEATH 与 RESOLVE_IN_ROOT 的边界,并处理 EXDEV、EAGAIN 和内核兼容性验收。356 收藏
-
Redis Sentinel 触发故障转移后,看到某个 Sentinel 报了 SDOWN 并不代表切换已经完成。本文用 ROLE、INFO replication、SENTINEL master 和 switch-master 事件,核对 ODOWN、主节点提升、从节点重挂与应用重连四个结果,给出可回滚的验收清单。356 收藏
-
文章 · java教程 | 2个月前 | 故障排查 · Java教程 · 虚拟线程 · synchronized reentrantlock 虚拟线程 JFR Java 21 VirtualThreadPinnedJava 21 虚拟线程并不是开得越多越快。只要把慢 I/O 放进 synchronized,虚拟线程就可能 pin 住承载它的平台线程,吞吐随并发上升反而下降。本文用 JFR 和 tracePinnedThreads 还原定位过程,并给出锁替换与版本边界。343 收藏
-
文章 · linux | 2个月前 | Linux · 故障排查 · 服务管理 · Linux 服务状态 active exited Type=oneshot RemainAfterExit 常驻进程服务状态显示 active (exited) 不一定代表进程仍在运行。本文拆解 oneshot 服务的状态含义,给出常驻服务与一次性任务的判断、配置改法和复测命令。331 收藏
-
Redis 设置了 EXPIRE,业务却发现旧缓存没有在整点消失,通常不是 TTL 失效,而是过期判定、删除时机和监控口径混在了一起。本文从过期键残留现场出发,拆解惰性删除与定期扫描的边界,给出可复查的命令、通知配置和生产处理建议。331 收藏
-
Linux 的 page cache 占用高不等于内存泄漏,本文从 free、top、slab 和回收验证入手,区分缓存、进程匿名内存与内核对象的边界。331 收藏
-
文章 · python教程 | 2个月前 | 并发 · python · logging · 故障排查 · 优雅停机 日志丢失 QueueHandler 日志队列 Python QueueListenerPython 用 QueueHandler 把日志交给后台线程后,停机阶段不能只依赖进程退出。本文从日志资产、队列排空、监听器停止和异常收尾四个边界出发,给出一套可复查的优雅停机写法。316 收藏