💡
原文中文,约26200字,阅读约需63分钟。
📝
内容提要
文章讨论了MySQL数据库在线升级过程中出现的故障,Sysbench压力测试工具在此过程中QPS持续为零。分析发现,问题源于Sysbench未能正确处理连接,导致大量CLOSE_WAIT状态的连接和CPU使用率飙高。最终确认问题与MariaDB的libmysqlclient库有关,建议使用MySQL社区版的libmysqlclient以解决此问题。
🎯
关键要点
- 在MySQL数据库在线升级过程中,Sysbench压力测试工具的QPS持续为零。
- 问题源于Sysbench未能正确处理连接,导致大量CLOSE_WAIT状态的连接和CPU使用率飙高。
- 分析确认问题与MariaDB的libmysqlclient库有关,建议使用MySQL社区版的libmysqlclient以解决此问题。
- Sysbench在连接异常断开后,错误地重复创建连接,导致端口耗尽和CPU使用率过高。
- 通过抓包分析发现,Sysbench未能读取服务器的Greeting信息,导致连接状态为CLOSE_WAIT。
- 更换libmysqlclient库后,问题得到解决,表明MariaDB的实现存在缺陷。
❓
延伸问答
在MySQL数据库在线升级过程中,Sysbench出现了什么问题?
Sysbench在在线升级过程中QPS持续为零,未能正确处理连接,导致大量CLOSE_WAIT状态的连接和CPU使用率飙高。
导致Sysbench QPS为零的根本原因是什么?
根本原因是Sysbench未能正确处理连接,错误地重复创建连接,导致端口耗尽和CPU使用率过高。
如何解决Sysbench在MySQL升级中遇到的问题?
建议使用MySQL社区版的libmysqlclient库,以解决与MariaDB的libmysqlclient库相关的问题。
Sysbench在连接异常断开后发生了什么?
Sysbench在连接异常断开后错误地重复创建连接,导致大量CLOSE_WAIT状态的连接。
CLOSE_WAIT状态的连接是如何产生的?
CLOSE_WAIT状态的连接是因为Sysbench未能读取服务器的Greeting信息,导致连接状态为CLOSE_WAIT。
Sysbench的高CPU使用率是由什么引起的?
高CPU使用率是由于Sysbench在连接异常时不断尝试创建新连接,导致内核在寻找可用端口时进入死循环。
➡️