MySQL Case--应用服务器性能瓶颈导致慢SQL

在分析优化慢SQL时,除考虑慢SQL对应执行计划外,还需要考虑

1、 慢SQL发生时间点的数据库服务器性能

2、慢SQL发生时间点的应用程序服务器性能

3、 慢SQL发生时间点数据库服务器和应用服务器之间网络

如果应用服务器上存在性能压力,会导致对应用服务器:

1、无法快速处理MySQL服务器返回的数据

2、无法及时处理已开启的事务如提交或回滚事务

如果数据库服务器和应用服务器之间网络存在问题:

1、数据丢包重传,MySQL数据库返回数据量较大时花费较长时间在网络传输上

2、未提交事务,网络抖动导致连接断开,由于缺少TCP“四次挥手”操作,MySQL服务器未察觉到连接断开而一直等待应用服务器提交或回滚事务。

下面是应用服务器出现性能瓶颈时的场景描述:

某数据库一段时间内出现大量超过30秒的INSERT/UPDATE/DELETE慢SQL,经排查发现无阻塞,数据库无性能瓶颈,且在该时间范围内性能压力有明显下降。

数据库服务器CPU使用率下降:

数据库服务器CPU负载下降:

数据库服务器磁盘写入速度下降明显:

数据库服务器磁盘读取速度轻微下降:

由于所有慢SQL均来自同一台应用服务器,排查该应用服务器发现:

应用服务器CPU使用率暴涨:

应用服务器CPU负载超过100:

应用服务器内存使用率接近100%:

应用服务器磁盘使用率接近100%,中间有明显波动:

应用服务器SWAP使用率在故障恢复后下降:

猜你喜欢

转载自www.cnblogs.com/gaogao67/p/10890564.html