故障排查
已收录文章:71篇
-
Redis Lua 脚本一旦超过 lua-time-limit,会阻塞其他命令并返回 -BUSY。本文用一个长脚本现场说明如何确认阻塞、何时可以 SCRIPT KILL、写入后为什么只能重启,以及如何在脚本侧避免再次拖住主线程。184 收藏
-
Golang · Go教程 | 1个月前 | golang · JSON · 故障排查 · Go教程 · 接口设计 · JSON Go 接口兼容性 DisallowUnknownFields 严格解码接口增加 json.Decoder.DisallowUnknownFields 后,旧客户端多传字段会从静默兼容变成 400。本文用一个订单接口故障复盘这个变化,说明如何定位触发条件、保留严格校验的收益,并通过灰度和版本边界避免再次误伤旧请求。174 收藏
-
Go 程序在本地和服务器上解析出不同时间,通常不是时钟坏了,而是输入是否带时区、time.Parse 使用的 Location 以及序列化格式没有对齐。本文用最小实验拆开这三个边界,并给出可回归的处理方式。161 收藏
-
数据库 · MySQL | 3个月前 | 性能优化 · InnoDB · 故障排查 · MySQL教程 · DBA实战 · mysql innodb 性能优化 预热 冷启动 MySQL 8.4 Buffer Pool从数据库重启后热点接口 P99 抖动切入,讲清 MySQL 8.x InnoDB Buffer Pool dump/load、冷启动诊断、预热脚本、参数检查和上线演练。158 收藏
-
nftables 规则看起来写对了,流量却没有按预期放行或拒绝,通常要从 counter、链优先级和实际生效配置三处核对。本文给出一套可回滚的排查顺序。158 收藏
-
数据库 · Redis | 1个月前 | Redis · 内存管理 · 故障排查 · 缓存运维 · redis OOM CLIENT NO-EVICT maxmemory-clients noeviction 客户端驱逐Redis 写入报 OOM 时,先区分数据键无法淘汰与客户端输出缓冲触发驱逐。本文用 CLIENT NO-EVICT、maxmemory-clients、maxmemory-policy 和 INFO memory 还原两条故障链,给出核对命令、控制连接保护和回退边界。152 收藏
-
Redis Hash 字段过期后,整条 Hash 不一定会立刻消失。用 HEXPIRE 设置字段级 TTL,用 HTTL 或 HPTTL 检查精度,再结合 HGET、HLEN 和主动读取判断字段是否已不可见;验收时要区分过期时间写入失败、惰性删除和整 key 生命周期。138 收藏
-
PHP 的 TCP 探活不该只看一个布尔值。本文用 stream_socket_client() 拆解 DNS、连接超时、端口拒绝、上下文参数和日志归因,给出可回归的最小检查器。130 收藏
-
数据库 · MySQL | 3个月前 | binlog · 主从复制 · 故障排查 · MySQL教程 · DBA实战 · mysql DBA binlog 主从复制 MySQL 8.4 复制延迟 relay log从只读库延迟导致读到旧数据的事故切入,讲清 MySQL 8.x 复制延迟如何区分 IO 接收、relay log 应用、大事务、并行复制和只读流量影响。119 收藏
-
本文从一次内存告警出发,演示如何用 free、top、ps 等命令判断可用内存、定位高占用进程,并区分文件缓存增长、进程内存异常和 OOM 风险。108 收藏
-
从 IOSQE_FIXED_FILE、固定文件索引和稀疏表入手,定位 io_uring 请求返回 EBADF 的原因,并用 draining 到 ready 的切换边界完成在线更新验收。102 收藏