Mysql 连接数,最大并发数设置

项目中可能会遇到MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。
首先,首先我们来看下mysql的最大连接数:

show variables like ‘%max_connections%‘;

如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,

就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。

数值过小会经常出现ERROR 1040: Too many connections错误,可以过

show global status like ‘Max_used_connections‘;

通配符查看当前状态的连接数量,以定夺该值的大小。

以看到服务器响应的最大连接数为3,远远低于mysql服务器允许的最大连接数值。

对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高.

Max_used_connections / max_connections * 100% = 3/512 *100% ≈ 0.0058%

我们可以看到占比远低于10%(因为这是本地监控测试服务器,结果值没有太大的参考意义,大家可以根据实际情况设置连接数的上限值)。

max_used_connections / max_connections * 100% (理想值≈ 85%) 

如果max_used_connections跟max_connections相同 那么就是max_connections设置过低或者超过服务器负载上限了,低于10%则设置过大。

MySQL的max_connections参数用来设置最大连接(用户)数。每个连接MySQL的用户均算作一个连接。

MySQL无论如何都会保留一个用于管理员(SUPER)登录的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1;
这个参数实际起作用的最大值(实际最大可连接数)为16384,即该参数最大值不能超过16384,即使超过也以16384为准;
增加max_connections参数的值,不会占用太多系统资源。系统资源(CPU、内存)的占用主要取决于查询的密度、效率等;
该参数设置过小的最明显特征是出现”Too many connections”错误;

设置这个最大连接数值

方法1:

set GLOBAL max_connections=1024;
show variables like ‘%max_connections%‘;

这种 方式在Mysql重启后就失效。

方法2:

修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:
max_connections=512

重启mysql服务即可。

总体来说,该参数在服务器资源够用的情况下应该尽量设置大,以满足多个客户端同时连接的需求。否则将会出现类似”Too many connections”的错误。



原文地址:https://www.cnblogs.com/phpper/p/9570792.html

时间: 2024-11-05 20:39:33

Mysql 连接数,最大并发数设置的相关文章

Linux查看连接数,并发数

Linux查看连接数,并发数 博客分类: 小记 linux 软连接 Bat代码   ln -s /home/ictfmcg/data/photo /var/jtnd/data/photo tomcat 6的Connector配置如下 Xml代码   <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"

Linux netstat查看连接数,并发数

Linux查看连接数,并发数 netstat 显示协议统计和当前 TCP/IP 网络连接.NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]    -a            显示所有连接和侦听端口.//常用  -b            显示在创建每个连接或侦听端口时涉及的可执行程序.//常用                                 在某些情况下,已知可执行程序承载多个独立

Mysql数据库 查看连接数,状态 最大并发数设置

show status like '%max_connections%'; ##mysql最大连接数set global max_connections=1000 ##重新设置show variables like '%max_connections%'; ##查询数据库当前设置的最大连接数 show global status like 'Max_used_connections'; ##服务器响应的最大连接数 show status like 'Threads%'; Variable_nam

IIS Express并发数设置

今天将之前的一个瓦片图的服务迁移到了asp.net core试了一下,使用的时候感觉客户端刷新时有些慢,估计是并发连接数限制的原因. 由于这是一个开发中的版本,是用IIS Express部署的,IIS的并发连接数设置我倒是知道,但又懒的将其部署到iis上,便道网上搜索了一下IIS Express的并发数连接限制的修改方法. 找了一下,在StackOverFlow的一篇帖子Configure Maximum Number of Requests in IIS Express介绍了修改方案,步骤如下

地址池满,连接数超过并发数上限

http://steamcommunity.com/id/tqou761/2015-3-20 http://steamcommunity.com/id/soff65188/2015-3-20 http://steamcommunity.com/id/qtci6133/2015-3-20 http://steamcommunity.com/id/ovtoh5965/2015-3-20 http://steamcommunity.com/id/uvq39491/2015-3-20 http://st

mmysql-最大链接数和最大并发数的区别

关于连接数和并发数的设置(针对Innodb引擎) 对于机器本身来说,进程数是说机器正在运行的进程数量,调出任务管理器就可以看到.连接数是指进程接收和发送数据的连接ip的数量.并发数是指进程同时发送数据到各个ip线程的数量. 对于mysql来说,连接数可以my.cnf或者my.ini中通过max_connections 设置.并发数可以通过innodb_thread_concurrency来设置. 我们查看MAX_Connections使用命令show VARIABLES like 'max_co

linux上apache并发数与服务器内存关系计算!

Linunx(本次为ubuntu) apache! 连接数理论上当然是支持越大越好,但要在服务器的能力范围内,这跟服务器的CPU.内存.带宽等都有关系. 查看当前的连接数可以用: ps aux | grep httpd | wc -l 或: pgrep httpd|wc -l 计算httpd占用内存的平均数: ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}' 理论上服务器内存(单位G)*1024*1024*1024/2

apache限制并发数,IP,带宽设置

给大家推荐两个Apache模块,一个是mod_vhost_limit,用来限制请求并发数,一个是mod_limitipconn,用来控制 Apache的并发联接数,通过该模块可以限制同一来源IP的并发联接数.另一个模块是bw_mod,用于Apache网站带宽控制,可以根据来源IP, 网段来划分带宽,也可以根据网站文件类型来限制带宽,参数比较灵活,可以根据自己实际情况进行调整. 限制并发数 到官方网址: http://ivn.cl/category/apache/ (看不懂的,直接查找mod_vh

netstat--查看服务器[有效]连接数--统计端口并发数--access.log分析

简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等. 输出信息含义 执行netstat后,其输出结果为 ? ? Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 2 210.