开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(二):MyCat - 高级 - MyCat-Web 性能监控】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/756/detail/13277
MyCat - 高级 - MyCat-Web 性能监控
内容介绍:
一、MyCat 监控
二、MySQL 性能监控
三、SQL 监控
一、MyCat 监控
1、MyCat 性能监控
MyCat 监控服务当中到底可以监控哪些信息。已经配置了 MyCat 服务所在的地址以及他的端口号。接下来可以在 MyCat 监控当中查看一些 MyCat 性能数据,比如在下面界面当中,
配置的 157_9066 这台 MyCat 他的流量分析,以及 MyCat 的连接曲线,MyCat 的内存曲线,以及 MyCat 的活动现场,MyCat 的缓冲队列,以及他的 TPS 的分析。当点击 MyCat 的流量分析,然后选择一个时间段,就能看到 MyCat 在某一个时间段内流量的情况。由于当前客户端操作 MyCat 的次数比较少,所以流量基本上也看不出有变化。还有一个叫 MyCat 的连接分析, MyCat 的连接分析,也可以去选择对应的时间段来查看,当前这个时间段, MyCat 的连接大概是什么样子的。前端的连接和后端的连接都有。还有一个 MyCat 的内存分析, 当前可用的、可分配的多大,最小的多大,最大的是多大。还有活动线程的分析,缓冲队列的分析,以及 MyCatTPS 的分析。通过这些数据,就可以去监控 MyCat 的压力大不大,它的内存够不够,他的活动线程有多少,起到一个很好的监控作用。在 MyCat 当中往下走,还有一些 MyCat JVM的服务监控,再往下还有 MySQL 的性能监控。
2、MyCat 物理节点
还有一个叫做 MyCat 的物理节点,点击 MyCat 的物理节点,就能看到当前这台 MyCat 下面有三台 MySQL 的物理节点,他们的名字分别为 HostM 1、HostM2、HostM3。实际上分别就是这三个名字 HostM 1、HostM2、HostM3,地址分别就是 157、158 和 159。
<writeHost host="howtM1 url="192.168.192.157:3306"user="root"password="itcast"></writeHost>
</dataHost>
<dataHost name="host2"maxCon="1000"minCon=*10"balance="0"
writeType="0"dbType="mysql"dbDriver="native"switch Type="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM2"url="192.160.192.158:3306"user="root"password="itcast"></write
</dataHost>
<dataHost name="host3"maxCon="1000"minCon="10"balance="0"
writerype="0"db Type="mysql"db Driver="native"switch Type="1"slaveThreshol="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM3"url="192.168.192.159:3306"user="root"password="itcast"×1witefot
</dataHost>
大家会发现 157:3306、158:3306、159.3306。
它们各自的状态,他们各自的超时时间。同样还可以点击心跳曲线,可以看到 MyCat 与这台 MySQL 之间,心跳曲线是什么样的。都可以看到这些曲线,
这些心跳曲线实际上是 heartbeat(〈heartbeat〉Select user()</heartbeat>),每隔一段时间 MyCat 都会去连接这些 MySQL 实例,看这些 MySQL 实例是否还存活。
<dataHost name= "host3"maxCon="1000"minCon="10" balance="0"
writerype="0"dbtype="my sq1"dbōriver="native"switch? ype="1"slaveThreshol="100">
<heartbeat>select user()</heartbeat>
<writeliost hoat="host413"un="192.168.192.159:3306"user="root"password="itoast"></write
</dataHost>
3、这是我们所提到的 MyCat 的监控,通过 MyCat 的监控我们可以查看到 MyCat 的压力,以及内存的分配,以及线程数等等信息。
二、MySQL 性能监控
1、当然在这个里面,我们也可以监控 Mysql,如果我们想监控 MySQL,这个里面有一个 MySQL 性能监控,在 MySQL 性能监控当中,我们可以去添加对应的节点。先去配置 MySQL 管理,先去添加节点。
保存操作成功。同样,还可以新增,
现在三台 MySQL 实例的地址我们都已经添加了,然后就能监控到 MySQL 的性能,MySQL 比如他的命中缓存书之类的一些性能,这些都是可以去查看的。
三、SQL 监控
1、SQL 统计
当然,除了这些,还有一个叫 SQL 监控,SQL 监控监控哪些东西呢?点击 SQL 统计,SQL 监控监控的是我们往 mycat 当中,连接上 MyCat 去执行的 SQL 语句。到底是读为主还是写为主,读入的次数是多少?写入的次数是多少?可以发现,没读过也没写过,怎么还有数据呢?那是因为刚才刻意的在 MyCat 当中做了一些操作,比如,读取的一些操作,还有写入的操作,还有更新的一些操作,还有 SQL 执行时间的分布,在多少点的时候,她的执行的请求数是多少,都可以看到,以及他响应时间的曲线图
我们可以填写用户名,点击查询,就可以查询到对应的数据。
2、SQL 表分析
SQL 表分析指的是,我们查询 MyCat,到底查询的哪些表。可以选择对应的时间段,然后看到我们查询了 app 这张表,查询了 order,查询了 strhash,查询了 u 以及 stu 这张表。show tables 里面有一个 tb_log,输入 select * from tb_log,查询了这张表,把时间放宽一点,他会存在一定的延迟,就可以看到查询了 tb_log 这张表。
3、SQL 监控
SQL 监控,可以输入一个用户名 root,监控的区域最近七日,就可以看到 root 这个用户在最近七天时间,往这台 MyCat 当中都执行了哪些语句,执行了这么多语句
每一个语句是什么样的,使用哪个用户名来发送的,他请求的数据源是哪一个,在这一块都有。
4、高频 SQL
同样在用户名在输入 root,点击最近七日查询,执行的次数在这里都可以看到,他还有执行时间的曲线分析,后面还有执行耗时。
5、慢 SQL 统计
慢 SQL 统计就类似于慢 SQL 当中的慢查询日志。在慢查询日志当中它记录的是查询速度比较慢的一些语句。慢 SQL 统计指的就是执行效率比较低的 SQL,输入一个阀值 10,它代表的是 10 毫秒,也就是说,执行时间超过 10 毫秒就会查询出来。
6、SQL 解析
(1)SQL 解析主要是用于测试,在这里面配置了逻辑库,在逻辑库里面也配置了逻辑表。当我们查询某一张表中的数据时,他到底会到哪些节点中查询呢?对于我们当前来说,是会到三个节点中全部查询吗?并不是,他会根据自己的路由规则,来解析当前请求会到哪个节点中来查询。这有一张表叫 tb_user 这张表,他的分片规则是根据 status 进行每区分片,status 可取值应该是1,2,3。
再来执行一下select* from tb_uesr
,一走第一个节点,二走第二个节点,三走第三个节点,接下来执行一条语句叫做,select *from tb_ user where status=`1`
。如果执行这条语句,
如上图:走 dn1,指的是走第一个节点,接下来把 1 改成 2,走第二个节点,再把2 改成 3,走第三个节点。
MyCat 在执行某一条 SQL 语句的时候,它会根据这条 sql 语句进行一个分析,然后进行路由规则的一些分析,来决定这条 SQL 语句到底要到哪个节点当中进行执行。
假如 status 没有使用等于,使用的是 select *from tb_ user where statusin(in'1','2')
,那么到底到第一个还是第二个呢?他既会到第一个也会到第二个
然后把这两个节点查询的数据进行合并,这就是 sql 监控当中可以去监控我们当前查询了哪些表,当前的 SQL 统计是什么样的,当前都查询了哪些表,涉及到哪些表,以及 SQL 的监控,以及高频 SQL、慢 SQL 以及 SQL 的解析都可以看到。
(2)所以 MyCat 的监控平台,MyCat-Web 实际上可以监控 MyCat,也可以监控底层 MySQL 的一些状态。通过 MyCat-Web 可以知道 MyCat 的运行情况,MyCat的请求压力,MyCat 活动线程的情况,以及发送到当前 MyCat 的 SQL 语句执行情况。
MyCat 高级当中的第一部分 MyCat 性能监控,主要是工具 MyCat-Web。