MySQL 导致 Load Average 过高,如何排查和解决?

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 过高,如何排查和解决?的详细内容,更多请关注其它相关文章!