FAQ系列 | 监控平均SQL响应时长

简介: FAQ系列 | 监控平均SQL响应时长

导读

MySQL里如何监控平均SQL响应时长?

问题由来

对MySQL的性能指标监控,除了关注tps(每秒可执行的事务数)、qps(每秒请求数)两个衡量吞吐量的重要指标外,还应该监控平均SQL响应时长指标。

怎么做

有几个可选方案:

1、利用MySQL提供的benchmark()函数。这个函数的作用是模拟进行N次某种调用,这样一来,我们就可以利用这个函数调用N次专门的存储过程,根据其执行耗时,以此作为平均SQL响应时长的依据;

2、利用pt-query-digest工具,并结合tcpdump实时抓取每个SQL请求,也就能分析出每个SQL请求的响应时长了;

3、使用Percona或者MariaDB分支版本提供的QUERY_RESPONSE_TIME插件功能,它可以帮我们统计平均SQL响应时长的分布区间,类似直方图功能;

第一种相对比较简单但不够精确(不过也是够用的),第二种略麻烦些但可以看到每次请求的详细记录,第三种则只能看到整体的分布,无法看到每次请求的详细记录。

写在最后

监控性能指标时,除了关注吞吐量,还应该关注每次请求的平均响应时长。以高速公路收费站为例,有几个收费口基本可表示其并发收费能力(tps),而每辆车的平均通行时间如果很久的话,相信你也是受不了的是不是 :)



            </div>
相关文章
|
Kubernetes 测试技术 微服务
Kruise Rollout 全链路灰度实践
OpenKruise 是一个基于 Kubernetes 的扩展套件,主要聚焦于云原生应用的自动化,比如部署、发布、运维以及可用性防护。本文介绍通过 OpenKruise 构建自动化运维的方式实现基于 Istio 的全链路灰度功能。
48409 252
MyBatis-Plus更新部分字段
MyBatis-Plus更新部分字段
1494 0
|
Kubernetes 负载均衡 安全
【服务网格】最佳实践在哪里-1:全链路灰度
作为完全兼容社区Istio的服务网格产品,服务网格ASM针对全链路灰度场景提出了自己的思考,并针对性地设计了对应的流量标签方案,来解决上述全链路灰度实现方案中的痛点问题。
|
存储 中间件 Java
开源 Golang 微服务入门一: HTTP 框架 Hertz
Hertz 是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点
1149 0
开源 Golang 微服务入门一: HTTP 框架 Hertz
|
缓存 JSON 运维
运维面试题库之Python+Django
运维面试题库之Python+Django
10637 1
|
SQL Java 测试技术
Mybatis-Plus中updateById方法不能更新空值问题
Mybatis-Plus中updateById方法不能更新空值问题
1424 0
Mybatis-Plus中updateById方法不能更新空值问题
|
消息中间件 JSON 数据可视化
Kafdrop-Kafka开源可视化工具
Kafdrop是Apache Kafka的开源Web UI可视化工具。
967 0
|
存储 NoSQL Java
Redis(三十)- Redis集群操作和故障恢复&集群的Jedis开发
上一篇文章我们介绍了集群的基本概念,以及如何搭建一个简单的Redis集群。Redis(二十九)- Redis集群的介绍以及搭建,这篇文章我们接着来学习Redis集群。
424 0
Redis(三十)- Redis集群操作和故障恢复&集群的Jedis开发
|
消息中间件 运维 Kafka
呕心沥血20万字《Kafka运维与实战宝典》免费开放下载了
呕心沥血20万字《Kafka运维与实战宝典》免费开放下载了
2784 0
|
存储 SQL Prometheus
Pull or Push?监控系统如何选型
本文主要介绍了监控系统中最纠结的Pull or Push选择问题,笔者结合数年的实际经验以及遇到的各类客户场景对Pull和Push的各类方向进行了比对,仅供大家在监控系统建设过程中参考,也欢迎大家留言和讨论。
3581 0