mysql数据库cpu高的原因_MYSQL数据库服务CPU高问题分析与优化

本文探讨了MySQL服务CPU高问题的分析和优化,强调了性能监控的重要性。内容包括识别瓶颈、CPU瓶颈的识别、瓶颈根源分析,以及通过建立索引来优化查询效率。案例中,通过对SQL查询优化和调整query_cache大小,成功降低了CPU使用率和响应时间。
摘要由CSDN通过智能技术生成

MySQL服务性能监控分析与优化是永恒的主题,做为性能测试人员有时也要站在DBA角度出发进行适当分析与优化,这也是性能测试人员能长期生存发展之路。而资源的使用监控分析才是性能故障分析的根本首要任务。在数据库服务器内部,如果执行的操作会严重受到内存、CPU或磁盘吞吐量中任何一个的影响,则可以将它视为瓶颈。

因此理解服务器如何运行,资源损耗在哪些方面对问题进行故障诊断是非常有价值有意义的活动,具体案例如下。

这些监控分析优化方法等细节我们在品课学院性能实战课堂中都会以实战方式进行实操性测试监控分析实践理解学习,特别是资源利用问题花费在什么地方,课堂中都会操作项目案例模拟讲解,来提高学员对性能监控分析的认知。

bbf5019e5e342c960017fe15216d6f1e.png

1、识别瓶颈

在分析性能问题时,首先需要识别瓶颈,然后将该瓶颈解决。产生瓶颈的原因通常有两类,一类是由于错误的配置,另一类是达到了软件或硬件的性能或可伸缩性的限制,例如SQL语法问题。

2、识别CPU瓶颈

CPU时间开销是最昂贵、最宝贵的服务器资源,并且系统总体性能往往对CPU使用率非常敏感。例如,用户经常可以察觉到高CPU使用率的状况,就是响应时间慢,超时现象等。

3、瓶颈根源分析

MYSQL自身经常会导致高CPU使用率的情形,包括执行差效率的查询、哈希连接或多表合并连接、参数设置不合理等。

4、案例说明如下

测试场景,在压力测试某银行系统登录退出时,因用户登录需要查询对应的客户相关交易信息等,而需要涉及SQL查询,这时LR 并发100用户时,响应时间5秒多,人工登录发现出现超时错误信息,这时通过top命令监控到CPU使用率超过90%,如下图:

4.1 前端页面响应超时:

e81ade929c663ab3ecbeb9f7ab3e7b08.png

4.2 数据库服务器资源使用率

a8d15cd108ef8b1de6ecc318206d9ccf.png

4.3 LR响应时间指标分析

f7139af3fe53b5e27c293c7d9b630fd4.png

4.4 MYSQL 语法分析

在监控过程中发现若干SQL语法都是走全表扫描方式,导致响应时间和CPU使用率偏高,其中一个SQL如下

4e922257941fc2fe4a217789b42f0def.png

5、优化方法

这时对表的需要检索字段建立索引后各项性能指标如下图

ca6b3c9b1fed00d54f79628b96cf5218.png

这时 同样是100用户并发,如下图建立索引前后响应时间走势图:

589541e9240a51d1472502c126a1048a.png

SQL 检索数据路径:

dbd9e655931b9c0a7afdf805ec012b0e.png

发现虽然建立索引,响应时间降低到2秒以下,但是数据库服务器cpu资源使用率仍然70%以上,偏高,这时发现缓存***率不高,针对query_cache适当调整大小后,mysql数据库cpu使用率讲到30%以下和响应时间1秒以下,如下图。

3b9bf719ffc568b922c835c56e879e1c.png

响应时间指标如下:

dcd36804f6667756ee25b6d93d39401f.png

【编辑推荐】

【责任编辑:武晓燕 TEL:(010)68476606】

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值