当前位置:   article > 正文

mysql cpu使用率_MySQL CPU使用率高情况的原因和解决

mysql cpu占用率高

1. 问题原因

1.1 应用负载(QPS)高

1.2. 查询执行成本(查询访问表数据行数 avg_lgc_io)高

2. 解决方法

2.1 应用负载(QPS)高

2.2 查询语句执行成本(查询访问表数据行数)高

3. 避免出现 CPU 使用率达到 100% 影响业务的一般原则

1. 问题原因:

应用提交的查询(包括数据修改操作)执行所需大量的逻辑读(逻辑IO,执行查询所需访问的表的数据行数),系统需要消耗大量的 CPU 资源用于维护从存储系统读取到内存中的数据一致性。

注:本文不排除由于MySQL 其他原因(比如大量行锁冲突、行锁等待)或后台任务原因导致的实例 CPU 使用率高,但这种情况出现的概率是非常低的,在此不做讨论。

通过一个简化的模型来说明 系统资源、语句执行成本 以及 QPS(Query Per Second 每秒执行的查询数)之间的关系:

条件:应用模型恒定(应用没有修改),

avg_lgc_io:每条查询执行需要的平均逻辑 IO

total_lgc_io:实例 CPU 资源单位时间能够处理的 逻辑IO 总量

公式:

total_lgc_io = avg_lgc_io x QPS -- 单位时间 CPU 资源 = 查询执行平均成本 x 单位时间执行的查询数量

下面列出 2 种典型 CPU 使用 100% 的场景:

1.1 应用负载(QPS)高

特征:实例的 QPS(每秒执行的查询次数)高,查询比较简单、执行效率高、优化余地小。

表现:没有出现慢查询(或者慢查询不是问题主要原因),QPS 和 CPU

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/583209
推荐阅读
相关标签
  

闽ICP备14008679号