MySQL服务性能监管分析与优化是永恒的主题,作为性能测试人员有时也要站在DBA角度考虑开展适度分析与提升,这也是性能测试人员能长期存活发展存在意义。而资源的应用监管分析才是性能故障分析的核心首要任务。在数据库服务器内部,假如执行的操作会严重受到内存、CPU或硬盘吞吐量中任何一个的影响,则可以把它视作瓶颈。

因此了解服务器如何运行,资源消耗在哪些方面对问题开展故障检测时非常有价值,具体案例如下。

MYSQL数据库服务CPU高怎么办?一文教你如何进行问题分析与优化。

1、识别瓶颈

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

2、识别CPU瓶颈

前边章节我们有讲到《MYSQL数据库服务磁盘IO高问题分析与优化》有提及IO难题故障分析与解决方法,而本章通常是讲解CPU问题定位分析与解决方法。

CPU时间花销是很昂贵、最宝贵的服务器资源,而且系统整体性能往往对CPU使用率特别敏感。比如,客户常常能够察觉到高CPU使用率的情况,便是响应时间慢,超时状况等。

3、瓶颈根源分析

MYSQL自身经常会造成高CPU使用率的情况,包含执行差效率的查询、哈希连接或多表合并连接、基本参数不合理等。

4、案例说明如下

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

前端页面响应超时

数据库服务器资源使用率

LR响应时间指标分析

MYSQL语法分析

在监管时发现若干SQL语法都是走全表扫描方法,造成响应时间和CPU使用率较高。

5、优化方法

对表的需要检索字段建立索引

SQL检索数据路径:

发觉尽管建立索引,响应时间降低到2秒下列,可是数据库服务器cpu资源使用率依然70%以上,较高,这时发觉缓存命中率不高,对于query_cache适当调整尺寸后,mysql数据库cpu使用率讲到30%下列和响应时间1秒以下。