当前位置: 首页 > 科技观察

MYSQL数据库服务CPU高问题分析与优化

时间:2023-03-13 16:44:44 科技观察

MySQL服务性能监控分析与优化是一个永恒的主题,作为性能测试人员,有时候需要站在DBA的角度进行适当的分析与优化,这也是一个性能测试人员长期能力的生存和发展之路。资源使用监控和分析是性能故障分析的基础和首要任务。在数据库服务器内部,如果它执行的操作受到内存、CPU或磁盘吞吐量的严重影响,则可以将其视为瓶颈。因此,了解服务器如何运行以及资源消耗在哪里以解决问题是一项非常有价值和有意义的活动。具体案例如下。这些监控、分析和优化方法等细节将在PinkeAcademy的实战表现课堂中以实战的方式进行,监控、分析、实践、理解和学习,尤其是在资源利用问题的地方,以及项目案例模拟会在课堂上解释。提高学生对性能监控和分析的理解。1.识别瓶颈在分析性能问题时,首先需要识别瓶颈,然后解决。造成瓶颈的原因通常有两种,一种是配置错误,另一种是软件或硬件的性能或扩展性限制,例如SQL语法问题。2.识别CPU瓶颈CPU时间开销是最昂贵和宝贵的服务器资源,整体系统性能往往对CPU使用率非常敏感。例如,用户经常可以感知到CPU使用率高、响应时间慢、超时等。3.瓶颈根源分析MYSQL本身经常导致CPU使用率高,包括查询执行效率低下、hashjoin或多表mergejoin、不合理参数设置。4.案例说明了以下测试场景。在压力测试银行系统的登录和退出时,由于用户登录需要查询对应的客户相关交易信息,所以需要涉及到SQL查询。此时LR有100个并发用户,响应时间超过5秒,手动登录发现超时错误信息,此时top命令监控到CPU使用率超过90%,如图下图:4.1前端页面响应超时:4.2数据库服务器资源使用率4.3LR响应时间指标分析4.4MYSQL语法分析正在监控过程中,发现部分SQL语法都是表扫描,导致响应时间偏高和CPU使用率。其中一条SQL如下5.优化方法此时,对表中需要检索的字段进行索引后,各项性能指标如下图所示。还有100个并发用户,如下图是建立索引前后的响应时间趋势图:SQL检索数据路径:发现虽然建立了索引,但是响应时间减少到2秒以内,但是数据库服务器的CPU资源利用率还在70%以上,偏高。这时候发现缓存失败率并不高。适当调整query_cache的大小后,mysql数据库的CPU使用率小于30%,响应时间小于1秒,如下图。响应时间指标如下: