故障排查
已收录文章:71篇
-
Go 程序明明调用了 Write,退出后日志文件却少了最后几行,常见原因不是字符串没生成,而是 bufio.Writer 仍留在用户态缓冲区,或 Flush、Close 的错误没有被检查。本文用一个退出前丢日志的场景,拆开缓冲写入、defer 执行时机、Flush 与 Sync 的边界,并给出可复测的收尾写法。496 收藏
-
数据库 · MySQL | 1个月前 | MySQL · 数据库 · 权限管理 · 故障排查 · 账号安全 · 账号锁定 MySQL 8.4 FAILED_LOGIN_ATTEMPTS PASSWORD_LOCK_TIME ACCOUNT UNLOCKMySQL 8.4 账号因为连续输错密码被临时锁定时,不能只看一条 Access denied。本文用 SHOW CREATE USER、Locked_connects 和失败登录记录区分锁定原因,并给出安全解锁、策略修正与复查步骤。494 收藏
-
数据库 · MySQL | 3个月前 | 连接池 · 高并发 · 故障排查 · MySQL教程 · 数据库运维 · mysql 高并发 连接池 max_connections Too many connections从 MySQL Too many connections 事故入手,讲清 max_connections、Threads_connected、Threads_running、连接池容量预算和上线检查。491 收藏
-
文章 · python教程 | 2个月前 | 并发 · python · 故障排查 · asyncio · Python asyncio.create_task Python 任务取消 asyncio CancelledError Python 异步任务收尾Python 异步接口超时后,后台任务仍在访问数据库或写文件,常见原因不是 cancel() 失效,而是任务没有被保存、取消没有被等待,或协程吞掉了 CancelledError。本文用一个可复现的 asyncio 故障现场拆开这条链路,并给出带超时、回收和日志核对的改法。490 收藏
-
Linux 出现僵尸进程时,进程已经结束,却因为父进程没有回收退出状态而暂时留在进程表里。本文用 ps 的 Z 状态、PPID 和父进程回收逻辑定位问题,再给出可回滚的处理顺序,避免一上来就误杀正常服务。478 收藏
-
Go 服务启动时监听端口失败,先区分地址已占用、地址族不匹配和权限问题,再用 ss、lsof 及最小化 Go 复现确认根因。462 收藏
-
围绕高并发工单抢占和库存预占,讲清 MySQL 8.x InnoDB locking read 中 NOWAIT、SKIP LOCKED 的适用边界、复现方法、SQL 改写、锁等待诊断和上线检查。439 收藏
-
Redis Stream 消费组出现消息堆积时,先用 XPENDING 判断待处理消息的数量、最老时间和消费者归属,再用 XAUTOCLAIM 接管超时消息,最后按小批量确认、失败重试和监控恢复顺序处理。439 收藏
-
Go 程序用 os.CreateTemp 创建临时文件后,删除失败往往不是路径问题,而是文件句柄仍被占用。本文用一个可复现的导入场景拆开 CreateTemp、Close、Remove 的顺序,并说明 Windows 与 Unix 文件系统的行为差异、错误定位和安全清理写法。435 收藏
-
从 IN_Q_OVERFLOW 这条证据入手,区分 inotify 事件队列溢出、watch 数量耗尽和应用消费过慢,再给出 max_queued_events、max_user_watches 的核对、修复与恢复流程。428 收藏
-
服务突然报 too many open files,先别急着把进程上限调大。本文从进程软硬上限、打开句柄类型和监听连接三个证据面定位文件描述符耗尽,再用一个可复测的恢复顺序判断问题是泄漏、突发流量还是配置边界。428 收藏
-
Linux 上的服务管理器反复重启,常见原因不是 Restart= 配错这么简单,而是进程真实退出原因、启动限流和 journal 时间窗没有对齐。本文从一个 api-worker.service 持续重启的场景出发,按服务状态、退出结果、启动限流和日志证据逐层核对,给出可回滚的修复顺序。428 收藏