MySQL 导致 Load Average 过高,如何排查和解决?
mysql 导致 load average 过高
问题描述
通过终端登录需要等待数秒,执行其他命令时时而快时而慢。uptime 命令输出 load average 持续高于 4.0,推测为系统负载过高导致。
排查过程
- 通过 top 命令发现 mysqld 进程占用较多 CPU 资源。
- 停止 mysql 服务后,load average 明显下降,表明 mysql 是造成高负载的原因。
- 重新启动 mysql 失败,通过清理配置文件后重新安装 mysql 解决。
后续分析
再次启动 mysql、redis、mongodb 后,load average 下降至正常水平(2.25, 2.13, 1.57)。
IO 性能测试
使用 iozone 工具测试了 Raspberry Pi 4 (通过 USB 3.0 接入 U 盘)、MacOS (通过 USB 3.0 接入 U 盘)、Raspberry Pi 4 (通过 USB 3.0 接入 HDD) 的 IO 性能:
- U 盘:读速约 70M/s,写速约 5M/s
- HDD:读速约 100M/s,写速约 70M/s
由于 U 盘的写性能较差,可能是导致 mysql 负载过高的原因。
系统工具
排查过程中使用的工具包括:
- iozone: 测试 IO 性能
- iotop: 监控 IO 活动
- top: 监控系统资源使用情况
- lsof: 列出打开的文件
以上就是MySQL 导致 Load Average 过高,如何排查和解决?的详细内容,更多请关注其它相关文章!