高 CPU 负载和高 I/O 等待时间:Mysql 进程

高 CPU 负载和高 I/O 等待时间:Mysql 进程

我对这个角色和技术还很陌生。我们有一个网络服务器,它从传感器接收遥测数据,遥测数据存储在 MYSQL 数据库中。我们有一个前端门户,用于设备管理和查询数据库。

在过去的几周里,每次我们打开门户时,我们的 EC2 实例的 CPU 使用率都很高。在正常情况下,服务器负载正常,CPL 使用率低于中等

在浏览了几个网站并回答了这里的其他问题后,我调查了这个问题,但无法弄清楚如何解决这个问题

以下是 TOP 和 IOTOP 命令的截图。似乎 mysql 上发生了太多读取操作

有人能告诉我从哪里开始并找到解决办法吗

问候

IOTOP命令截图: IOTOP命令截图

TOP命令截图: TOP命令截图

SQL 显示进程列表屏幕截图显示完整流程列表

答案1

您的数据库正在执行大量表扫描。您需要确定哪些查询速度较慢,并对其进行索引和/或重写以提高效率。首先启用慢查询日志:log_slow_queries=1 long_query_time=0

并将慢速日志放入 mysqldumpslow 或 pt-query-digest。这将告诉您最有问题的查询是什么,然后您必须确定更好的索引是否足够,或者是否需要以更有效的方式重写查询。

相关内容