代码改变世界

消除高流量导致的MySQL瓶颈

2022-03-06 16:05  abce  阅读(176)  评论(0编辑  收藏  举报

消除高流量导致的MySQL瓶颈

1.扩展云实例的大小

  如果是云上,或虚拟化环境。扩大实例的大小通常是最便捷的方法。

2.部署更多的主从复制

  如果是读多的负载,可以部署更多的从库,来提升性能。

  仅仅部署主从复制还不够,你需要确定你的应用可以支持。有些应用可能需要借助ProxySQL等产品。

3.部署ProxySQL管理连接池和缓存

4.减少高负载的应用程序

5.检查资源使用的瓶颈

  cpu、io、网络、磁盘等

6.更多或更高的CPU

7.增加内存

  如何确认内存是否够了?通过pmm查看你的内存使用和i/o活动。

  io活动通常是我第一要看的项

img

  如图,如果没有read io,说明你所有的数据都被缓存了,要么是mysql缓存、要么是操作系统的缓存。

  但是写活动,即使都是在写缓存也不会被忽略,因为写活动最终是要写入磁盘的。

8.换到更快的存储

  如果pmm监控中

img

  innodb pending fsnycs接近1,则表明磁盘刷新遇到了瓶颈。

9.检查网络

  当确认网络是否是瓶颈时,需要查看带宽、网络延迟、网络错误等。

  网络延迟可以使用ping、mtr等工具

img

10.查询优化

11.添加索引

12.删除不使用的索引

  pt-duplicate-key-checker

13.调整mysql的配置

14.清理不使用的数据

  Pt-archiver

15.恰当的数据库维护

  optimize table

  mysqlcheck -optimize -A

16.检查后台任务

17.检查热点数据

  看看哪些数据上锁较多,哪些对象产生了回滚较多

18.正确地配置应用