当前位置: 首页 > news >正文

MySQL的关键指标及采集方法

MySQL 是个服务,所以我们可以借用 Google 四个黄金指标的思路来解决问题。

1、延迟

应用程序会向 MySQL 发起 SELECT、UPDATE 等操作,处理这些请求花费了多久,是非常关键的,甚至我们还想知道具体是哪个 SQL 最慢,这样就可以有针对性地调优。

  1. 在客户端埋点。即上层业务程序在请求 MySQL 的时候,记录一下每个 SQL 的请求耗时,把这些数据统一推给监控系统,监控系统就可以计算出平均延迟、95 分位、99 分位的延迟数据了。不过因为要埋点,对业务代码有一定侵入性。
  2. Slow queries。。MySQL 提供了慢查询数量的统计指标:
    show global status like 'Slow_queries';
    SHOW VARIABLES LIKE 'long_query_time';
  3. 通过 performance schema 和 sys schema 拿到统计数据。比如 performance schema 的 events_statements_summary_by_digest 表,这个表捕获了很多关键信息,比如延迟、错误量、查询量。

2、流量

统计 SELECT、UPDATE、DELETE、INSERT 等语句执行的数量。如果流量太高,超过了硬件承载能力,显然是需要监控、需要扩容的。这些类型的指标在 MySQL 的全局变量中都可以拿到。

show global status where Variable_name regexp 'Com_insert|Com_update|Com_delete|Com_select|Questions|Queries';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Com_delete              | 2091033   |
| Com_delete_multi        | 0         |
| Com_insert              | 8837007   |
| Com_insert_select       | 0         |
| Com_select              | 226099709 |
| Com_update              | 24218879  |
| Com_update_multi        | 0         |
| Empty_queries           | 25455182  |
| Qcache_queries_in_cache | 0         |
| Queries                 | 704921835 |
| Questions               | 461095549 |
| Slow_queries            | 107       |
+-------------------------+-----------+
12 rows in set (0.001 sec)

这些指标都是 Counter 类型,单调递增,另外 Com_ 是 Command 的前缀,即各类命令的执行次数。整体吞吐量主要是看 Questions 指标,但 Questions 很容易和它上面的 Queries 混淆。从例子里我们可以明显看出 Questions 的数量比 Queries 少。Questions 表示客户端发给 MySQL 的语句数量,而 Queries 还会包含在存储过程中执行的语句,以及 PREPARE 这种准备语句,所以监控整体吞吐一般是看 Questions。

流量方面的指标,一般我们会统计写数量(Com_insert + Com_update + Com_delete)、读数量(Com_select)、语句总量(Questions)。

3、错误

错误量这类指标有多个应用场景,比如客户端连接 MySQL 失败了,或者语句发给 MySQL,执行的时候失败了,都需要有失败计数。

  1. 在客户端采集、埋点,不管是 MySQL 的问题还是网络的问题,亦或者中间负载均衡的问题或 DNS 解析的问题,只要连接失败了,都可以发现。缺点就是会有代码侵入性。
  2. 从 MySQL 中采集相关错误,比如连接错误可以通过 Aborted_connects 和 Connection_errors_max_connections 拿到。

4、饱和度

首先我们要关注 MySQL 所在机器的 CPU、内存、硬盘 I/O、网络流量这些基础指标。

MySQL 本身也有一些指标来反映饱和度,比如刚才我们讲到的连接数,当前连接数(Threads_connected)除以最大连接数(max_connections)可以得到连接数使用率,是一个需要重点监控的饱和度指标。

此文章为8月Day6学习笔记,内容来源于极客时间《运维监控系统实战笔记》,推荐该课程。

相关文章:

MySQL的关键指标及采集方法

MySQL 是个服务,所以我们可以借用 Google 四个黄金指标的思路来解决问题。 1、延迟 应用程序会向 MySQL 发起 SELECT、UPDATE 等操作,处理这些请求花费了多久,是非常关键的,甚至我们还想知道具体是哪个 SQL 最慢,这样…...

协程怎么解释?Python 中的协程如何实现?Celery 的协程并发引擎如何实现?

文章目录 1. 协程怎么解释?2. 为什么叫协程?3. coroutine 怎么读?4. asyncio 和 gevent 怎么实现协程?4. celery 并发引擎是什么?如何改为协程?5. 一个 celery 服务是否可以同时使用多个不同的引擎? 1. 协…...

Linux:shell脚本:基础使用(2)

test命令 格式1:test 条件表达式 格式2:[ 条件表达式 ] (前后至少应有一个空格) 常用的测试操作符 -d:测试是否为目录(Directory) -e:测试目录或文件是否存在(Exist) -f:测试是否…...

Mir 2.14 正式发布,Ubuntu 使用的 Linux 显示服务器

Canonical 公司最近发布了 Mir 2.14,这是该项目的最新版本。 Mir 2.14 在 Wayland 方面通过 ext-session-lock-v1 协议增加了对屏幕锁定器 (screen lockers) 的支持,并最终支持 Wayland 拖放。此外还整合了渲染平台的实现,放弃了之前在 Raspb…...

合规管理,企业生存之本!这4大方法,助你规避风险

当下,合规管理已成为企业必修的一门学问。无论是上市公司还是民营企业,都面临着日益严苛的监管合规要求。然而,许多企业在在应对频繁更新的合规要求时,仍然手忙脚乱,合规工作参差不齐。 专家分析认为,企业合规困境的主要症结在于,业务运转过程中产生了大量证明文件,但企业对其…...

码云 Gitee + Jenkins 配置教程

安装jdk 安装maven 安装Jenkins https://blog.csdn.net/minihuabei/article/details/132151292?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132151292%22%2C%22source%22%3A%22minihuabei%22%7D 插件安装 前往 Manage Jen…...

Java重启

Java启动! 前言祖师爷高斯林老爷子冯诺依曼 注释单行注释多行注释文档注释 标识符***【硬性规则】******【软性建议】*** 关键字结尾 前言 其实我在写这篇文章的时候已经完整地学过一遍Java校招需要掌握的大部分知识了,但是在最近找实习的过程中,我发现自己对于一些只是还是模…...

ReactNative 学习笔记

学习使用的开发工具 编译器 VSCode 开发语言工具 TypeScript 重要程度分类 一般 这个程度的知识点主要是达到熟练掌握即可,不用太深入研究和学习。 重要 这个程度的知识点主要是达到熟练掌握,并且内部的原理切要熟记,因为会关联到其他的知…...

小研究 - MySQL 数据库下存储过程的综合运用研究

信息系统工程领域对数据安全的要求比较高,MySQL 数据库管理系统普遍应用于各种信息系统应用软件的开发之中,而角色与权限设计不仅关乎数据库中数据保密性的性能高低,也关系到用户使用数据库的最低要求。在对数据库的安全性进行设计时&#xf…...

CentOS 7 构建 LVS-DR 群集 nginx负载均衡

1、基于 CentOS 7 构建 LVS-DR 群集。 DS(Director Server):DIP 192.168.231.132 & VIP 192.168.231.200 [root132 ~]# nmcli c show NAME UUID TYPE DEVICE ens33 c89f4a1a-d61b-4f24-a260…...

ESP32学习笔记(52)————三轴加速度ADXL345使用(SPI方式)

一、简介 ADXL345 是一款 ADI 公司推出的基于 iMEMS 技术的超低功耗3轴加速度计,分辨率高(13位),测量范围达 16g。数字输出数据为 16 位二进制补码格式,可通过 SPI(3线或4线) 或 I2C 数字接口访问。ADXL345 非常适合移动设备应用。它可以在倾…...

Camunda 7.x 系列【4】 Camunda Modeler 功能介绍

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 下载安装2. 功能介绍2.1 欢迎界面2.2 工具栏2.3 小地图2.4 流程配置2.5 小工具栏2.6 启动…...

呼叫中心系统管理和优化的关键指标

呼叫中心系统是企业客户服务的重要组成部分,通过电话、邮件、社交媒体等渠道与客户进行沟通和交互。如何管理和优化呼叫中心系统,提高客户满意度和工作效率,是每个企业都需要关注和解决的问题。以下是呼叫中心系统管理和优化的关键指标。 1. …...

UML箭头汇总

参考:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html 1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言。 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图&#xff…...

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析

本章节主要讲解点亮LED的基本原理,以及GPIO框图的讲解。 如何点亮LED(输出) 首先我们查看原理图,观察电路图中LED的连接情况,如下图可以看出我们的板子中LED一端通过限流电阻连接的PB0另一端连接的是高电平VCC&#xf…...

高效管理,PDM系统与BOM系统携手合作

在现代制造业中,PDM系统(Product Data Management,产品数据管理)和BOM系统(Bill of Materials,物料清单管理)都扮演着关键的角色。PDM系统负责产品数据的统一管理,而BOM系统则专注于…...

Elasticsearch 使用scroll滚动技术实现大数据量搜索、深度分页问题 和 search

基于scroll滚动技术实现大数据量搜索 如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scroll滚动查询,一批一批的查,直到所有数据都查询完为止。 scroll搜索会在第一次搜索的时候,保存一个当时的视…...

了解Swarm 集群管理

Swarm 集群管理 简介 Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。 支持的工具包括但不限…...

【Docker】Docker私有仓库的使用

目录 一、搭建私有仓库 二、上传镜像到私有仓库 三、从私有仓库拉取镜像 一、搭建私有仓库 首先我们需要拉取仓库的镜像 docker pull registry 然后创建私有仓库容器 docker run -it --namereg -p 5000:5000 registry 这个时候我们可以打开浏览器访问5000端口看是否成功&…...

基于arcFace+faiss开发构建人脸识别系统

在上一篇博文《基于facenetfaiss开发构建人脸识别系统》中,我们实践了基于facenet和faiss的人脸识别系统开发,基于facenet后续提出来很多新的改进的网络模型,arcFace就是其中一款优秀的网络模型,本文的整体开发实现流程与前文相同…...

C#设计模式(15)命令模式(Command Pattern)

命令模式(Command Pattern) 命令模式是一种数据驱动的设计模式,属于行为型模式类别。请求被包装在一个对象中作为命令,并传递给调用对象。调用对象寻找可以处理该命令的合适对象,并将命令传递给相应的对象&#xff0c…...

快速排序和qsort函数详解详解qsort函数

💕是非成败转头空,青山依旧在,几度夕阳红💕 作者:Mylvzi 文章主要内容:快速排序和qsort函数详解 前言: 我们之前学习过冒泡排序,冒泡排序尽管很方便,但也存在一些局限性…...

搭建 elasticsearch8.8.2 伪集群 windows

下载windows 版本 elasticsearch8.8.2 以下链接为es 历史版本下载地址: Past Releases of Elastic Stack Software | Elastic windows 单节点建立方案: 下载安装包 elasticsearch-8.8.2-windows-x86_64.zip https://artifacts.elastic.co/download…...

C++ 运算符重载为成员函数

运算符重载实质上就是函数重载,重载为成员函数,他就可以自由访问本类的数据成员。实际使用时,总是通过该类的某个对象来访问重载的运算符。 如果是双目运算符,左操作数是对象本身的数据,由this指针指出,右…...

51单片机程序烧录教程

STC烧录步骤 (1)STC单片机烧录方式采用串口进行烧录程序,连接的方式如下图: (2)所以需要先确保USB转串口驱动是识别到,且驱动运行正常;是否可通过电脑的设备管理器查看驱动是否正常…...

Linux C++ 链接数据库并对数据库进行一些简单的操作

一.引言(写在之前) 在我们进行网络业务代码书写的时候,我们总是避免对产生的数据进行增删改查,为此,本小博主在这里简历分享一下自己在Linux中C语言与数据之间交互的代码的入门介绍。 二.代码书写以及一些变量和函数的…...

Linux进程间通信--msgsnd函数的作用

msgsnd函数用于将消息发送到消息队列中。它的原型如下: int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); 参数解释: msqid:消息队列标识符,由msgget函数返回。msgp:指向要发送的消息的指针&…...

P1629 邮递员送信(最短路)(内附封面)

邮递员送信 题目描述 有一个邮递员要送东西,邮局在节点 1 1 1。他总共要送 n − 1 n-1 n−1 样东西,其目的地分别是节点 2 2 2 到节点 n n n。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有 m m m 条道路。这…...

网络安全--原型链污染

目录 1.什么是原型链污染 2.原型链三属性 1)prototype 2)constructor 3)__proto__ 4)原型链三属性之间关系 3.JavaScript原型链继承 1)分析 2)总结 3)运行结果 4.原型链污染简单实验 1)实验一 2&#xff0…...

Harbor企业镜像仓库部署

目录 一、Harbor 架构构成 二、部署harbor环境 1、安装docker-ce(所有主机) 2、阿里云镜像加速器 3、部署Docker Compose 服务 4、部署 Harbor 服务 5、启动并安装 Harbor 6、创建一个新项目 三、客户端上传镜像 1、在 Docker 客户端配置操作如下…...