性能排查
已收录文章:47篇
-
MySQL 主从延迟不能只看 Seconds_Behind_Master。本文从复制线程状态、Relay_Log_Pos、Performance Schema 事务等待和大事务四个层次排查,并给出可回退的处理顺序。468 收藏
-
Redis 连接池偶发超时,不能只把超时时间调大。本文按命令执行、连接占用和网络往返三层排查,结合 INFO clients、CLIENT LIST 与 SLOWLOG 区分服务端慢、连接池耗尽和客户端等待。182 收藏
-
vmstat 输出里的 r 和 b 经常被误读成 CPU 使用率。本文从运行队列、不可中断睡眠和 load average 的关系入手,给出一套从现象到证据的 Linux 性能排查方法。222 收藏
-
数据库 · MySQL | 3星期前 | MySQL · 数据库 · 死锁 · InnoDB · 性能排查 · mysql innodb 死锁 事务 LATEST DETECTED DEADLOCK 锁顺序MySQL 发生死锁后,不能只看报错回滚。本文从 SHOW ENGINE INNODB STATUS 的 LATEST DETECTED DEADLOCK 还原事务、锁资源和等待关系,再用相反锁顺序构造最小复现并给出上线前验收清单。480 收藏
-
Linux 服务器的 swap 使用量升高,不等于内存已经泄漏或必须立刻关闭交换。本文用 vmstat 的 si/so、free 的可用内存、磁盘 I/O 和 /proc/sys/vm/swappiness 组成证据链,区分偶发换出、持续抖动与真实内存压力,并给出可回滚的处理顺序。458 收藏
-
Java 批量校验邮箱、手机号等字段时,反复编译 Pattern 和把 Matcher 跨线程复用,都会让接口延迟抬头。本文从 Pattern、Matcher 的职责边界出发,对比错误写法与复用写法,再用 JMH 风格基准和业务验收检查性能收益。102 收藏
-
按月增长的订单或日志表,不必每次归档都全表搬运。本文用 MySQL 8.4 RANGE 分区示例,说明分区键设计、分区裁剪检查、按月新增与删除边界,以及上线前的回滚和验收方法。273 收藏
-
从一个不存在的商品 ID 被反复查询的场景出发,演示 Redis 空值保护的最小实现,说明 TTL、并发回源、数据新建和主动失效之间如何配合。333 收藏
-
Files.readString 适合小型文本读取,却会把整个文件和解码后的字符串同时带进堆。本文用内存预算、newBufferedReader 分块读取和 lines 流关闭三个检查点,说明大文件读取该如何选型。335 收藏
-
Go 1.27 将 goroutineleak profile 提升为正式能力。本文从永久阻塞的判断开始,演示如何采集、阅读和复核泄漏线索,并说明什么时候不该直接回收 goroutine。482 收藏
-
Redis Cluster 中,多键操作需要落在同一 slot,而把所有订单都塞进一个哈希标签又可能制造热点。本文用订单明细与库存扣减场景说明如何拆分 Key、验证 slot 分布,并在多键事务与分片均衡之间做取舍。249 收藏
-
Golang · Go教程 | 3星期前 | HTTP · go · 连接池 · 性能排查 · net/http · http.server 连接泄漏 Go ConnState StateIdle HTTP长连接用 http.Server.ConnState 观察 Go HTTP 连接从 StateNew 到 StateClosed 的状态变化,区分慢请求、Keep-Alive 和未收尾连接,并给出计数、超时与复核方法。125 收藏