腾讯高级工程师祝海强深度剖析腾讯云自动运维平台(2)
解决:由于DB master 是一直通过长链接在MySQL上面的,所以拨测检测到异常的时候仍然可以进去,就可以去check-load,是什么东西导致了所有的连接数跑满,然后select,假如发现它是表锁了,就针对这种select牺牲掉它,让整个MySQL server恢复正常.
问题:另一种是没有锁的情况,只是业务单纯的sleep?导致连接满了,这是因为实例规格不同,对最大连接数的设置也是不一样的. 解决:为了避免运维凌晨起来,就可以把time out设久一点,比如sleep如果默认是八个小时,比如第一次设到一个小时,如果还缓存不了,就设到60秒,运维人员再去处理.
问题:如果通过time out也解决不了问题. 解决:可以在这个服务器负载允许的情况下,就是内存容纳还够的情况下扩大它的最大连接数. 4)锁等待 问题:锁等待就是发现死锁以后怎么去做:
解决:一种就是通过活动连接这个最直观的方法,如果锁很多的时候活动连接就会很多;
第二种就是通过运用DB自身的系统库去做一些判断,如果检查到连接数是一样的情况下,就像刚才一样表锁了就指定牺牲掉; 5)极端高负载
问题:如果机器负载很高. 解决:平台会做一些高负载的修复方法,比如看到某一个实例的负载很高,平台就会判断MySQL是不是可以通过加索引去解决,如果可以,线上就会自动去加一个索引先修复,运维人员可以在第二天上班时间再去跟进. 三、平台的总体架构平台的总体架构共分为四块: 1.Web ServerWeb Server就是一个可视化的界面,后端提供一些API的服务,例如从主机到从机发起的迁移就是一个常任务,可能需要两三天的时间. 2.后台作业系统常任务里包括数据对比这些东西,有一个作业系统进行管理,负责协调前端或者后端通过API发起的任务到公众模块的衔接; 3.功能模块包括资源分配、备份中心、数据迁移、HA模块以及提供给客户的接口,客户通过API就可以拿到最大连接; 4.基础服务组件
基础服务组件包括腾讯内部的一个AJS系统;后端cdb-report是自研的一个采集器;还有异常切换需要用到腾讯的Tencent GateWay(TGW). 平台总体架构图:
(编辑:ASP站长网) |