MySQL的活跃连接数和连接数

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 前言 很多用户经常会问,我购买的连接是2000,怎么活跃了连接到了500就报警啊?就响应慢了啊?通过命令我们来看下关于连接数有多少种: mysql> show global variables like "max_connections"; +-----------------+-------+ .

前言

很多用户经常会问,我购买的连接是2000,怎么活跃了连接到了500就报警啊?就响应慢了啊?
通过命令我们来看下关于连接数有多少种:

mysql> show global variables like "max_connections";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1800  |
+-----------------+-------+
mysql> show global status like "%Threads%";
+------------------------------------------------+-------+
| Variable_name                                  | Value |
+------------------------------------------------+-------+
| Threads_cached                                 | 3     |
| Threads_connected                              | 0     |
| Threads_created                                | 7     |
| Threads_rejected                               | 0     |
| Threads_running                                | 2     |
+------------------------------------------------+-------+
11 rows in set (0.00 sec)

总连接数

客户购买的DB连接数是这个。max_connections,允许同时连接DB的客户端的最大线程数。如果客户端的连接数超过了max_connections,应用就会收到“too many connections”的错误。

下面是线程的状态信息:

已经创建的连接数

Threads_created是为处理连接而创建的线程数。再明确一点来说是连接到DB的,客户端的线程数。它包含Threads_running。 如果Threads_created很大,可能需要调整thread_cache_size
线程cache命中率=Threads_created/Connections,cache命中率当然越大越好,如果命中率较低,可以考虑增加thread_cache_size。

已经连接的连接数

Thread_connected当前打开的连接数。

活跃连接数

Threads_running官方的说法是“没有sleep的线程数”。顾名思义是:在DB端正在执行的客户端线程总数。Server端保持这些连接同时客户端等待回复。有些线程可能消耗CPU或者IO,有些线程可能啥也没做单纯等表锁或行锁释放。当DB执行完这个线程,客户端收到回复,线程的状态就会从"running" 变成 "connected".

如果发现活跃链接数突然增高,通常是以下原因:

  • 应用缓存失效
  • 突发流量

参考

https://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Threads_running
https://dba.stackexchange.com/questions/176679/what-is-the-difference-between-threads-connected-and-threads-running

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
关系型数据库 MySQL
mysql查看当前实时连接数最大连接数
mysql查看当前实时连接数最大连接数
|
12月前
|
存储 缓存 监控
MySQL MySql连接数与线程池
MySQL MySql连接数与线程池
206 0
|
SQL NoSQL 前端开发
MySQL 连接数过多的处理方法合集 - Too many connections - 卡拉云
碰到`Can not connect to MySQL server. Too many connections”-mysql`错误着实令人抓狂。这基本等于失去了对 MySQL 的控制权。本教程将详细讲解多种处理此错误的方法。 sudo mysql -uroot -p ERROR 1040 (00000): Too many connections
7256 0
|
SQL 监控 关系型数据库
RDS For MySQL连接数使用率高
RDS For MySQL连接数打满如何处理
|
监控 关系型数据库 MySQL
MySQL连接数管理
MySQL 连接状态是数据库中比较重要的一个指标,比如说目前总共有多少个连接、各连接处于什么状态等等,这些连接状态也能从侧面反映出数据库当前运行状况。本篇文章我们一起来学习下 MySQL 连接相关内容。
240 0
|
关系型数据库 MySQL
mysql连接数不够
在使用mysql时候,时不时的会出现“Too many connections in ...”,意思是连接数量不够用了,我们可以通过修改最大连接数解决,有两种方式,一种用命令行设置,重启会失效,另一个则是修改my.ini
564 0
|
关系型数据库 MySQL
mysql连接数太小,导致网站报错mysql:Too many connections
mysql连接数太小,导致网站报错mysql:Too many connections
2096 0
|
缓存 关系型数据库 MySQL