压测结束后从库延迟从 2 秒涨到 900 秒,Seconds_Behind_Master 一直不回落。查慢日志发现压测脚本还在跑,连接串指向的是生产从库。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,压测任务配在测试机上,环境变量没覆盖,默认用了生产配置。脚本没有结束时间,容器重启后自动续跑。从库延迟上去后读请求全部读到旧数据,业务侧开始报不一致。

「压测误打生产」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

SHOW SLAVE STATUS\G
ps -ef | grep -i jmeter
SELECT * FROM information_schema.processlist WHERE user='loadtest';

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

具体做法是,压测任务加显式结束时间和最大请求数;连接串用独立配置文件 生产库地址不落在压测机上;给压测账号单独授权 只读测试库;结束后确认进程和连接都已退出。

最后用这个标准收尾,压测结束后从库延迟在 1 分钟内回到 1 秒以内,没有残留连接。

作者 9823189