• 数据库问题-复杂流量问题的排查


     
    一 简介:记一次mysql流量问题的排查之旅
    二 问题描述:
    在每天的业务高峰期间,都会出现流量被打满的情况,严重影响了业务的正常运行
    三 收集数据
    1 通过监控图进行定位,发现是出口流量打满
    2 通过iftop进行定位,发现流量来源包括三方面
    1 从库的binlog拉取 2 canal的binlog拉取 3 多个应用服务的数据查询
    3 查看binlog的生成量,发现binlog的生成量非常频繁,大概1分钟1个
    四 解决思路
    1 首先尝试将canal的binlog不抽取主库,只抽取从库,然后进行观察,发现有效果,但是并不明显
    2 然后尝试建立缓存,将非必要的mysql查询走缓存,减少查询流量
    3 根据binlog进行分析,获取以下信息
    表:1 热表名称 2 热表的操作 发现更新和插入很频繁
    2 单条insert内容
    我们根据以上信息发现热表的insert和update操作都有大字段参与,经过与研发沟通,将类似json类型的数据存储到了mysql表中,造成了binlog频繁生成和切换,定位到了最主要的问题
    五 解决方法
    1 减少binlog生成量(去掉大字段,减少事务操作量),减少同步binlog的流量
    2 建立缓存,减少查询的流量
     
     
  • 相关阅读:
    day70 django中间件
    day69 cookie与session
    day68 form组件
    day67 前后端数据交互
    day65 django进阶(1)
    day64 django模型层
    day63 django入门(4)
    day62 作业
    Python正课142 —— DRF 进阶3 路由与认证
    一文搞懂什么是IaaS, PaaS和SaaS
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/12453882.html
Copyright © 2020-2023  润新知