压测导致mysql数据库CPU很高_压力测试过程中 MySQL 服务 CPU 占用率过高的问题排查思路...

压力测试过程中 MySQL 服务 CPU 占用率过高的问题排查思路

O, 经验总结:

在关注业务接口的 TPS 时, 也要关注数据库服务器的 QPS. 如果一个业务流程里包含多条查询, 那么业务接口 TPS 的上升对数据库服务器 QPS 的放大效应会很明显.

如果查询结果集不大, 尽量使用一条查询语句, 通过子查询返回多个结果集, 避免将多个结果集拆分成多次数据库查询, 否则会造成过多的数据库连接 / 查询操作, 消耗 IO 资源, 降低 TPS, 提高 CPU 占用率.

在业务代码中, 尽量避免在循环语句里写数据库查询.

依据 SQL 语句的使用频率来建立索引, 查询条件字段顺序按照联合索引的字段顺序来写 (从左到右的匹配顺序)

关注慢查日志

一, 背景说明

接着上一篇 Grpc 性能调优的文章继续写, 我们这次压测的是一个查询用户群组列表信息的接口, 该接口里需要查询某个用户的所有群组信息, 包括每个群组的名称, 成员数量等.

经过之前对业务机器的 JVM 参数等进行优化后, 现在已经不存在业务机器的频繁 GC,CPU 占用率过高, TPS 上不去等问题了. 但是我们遇到了两个新问题: 在业务接口并发 50,TPS600 左右时, 压测接口出现了超时错误, 而且数据库服务器 CPU 占用率超过了 93%!

二, 测试过程

数据准备:

t_info_group 群组表:

ab7653affab982b574eb7acc55df2e04.gif

t_info_group_member 群组成员表:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值