MySQL连接数相关参数设置
当我们的数据库服务器遇到如下的错误:ERROR: Too many connections
⼀种可能性就是我们的压⼒确实很⼤,需要增加服务器硬件资源或者增加数据库服务器。但是⼤多数情况下是我们的连接数配置不合理造成的。
在MySQL中,有如下⼏个参数是和连接数配置相关的:
Max_connections
Max_used_connections
Connections
Max_user_connections
Back_log
Max_connect_errors
接下来我们逐⼀来分析这些参数的意义:
Max_connections:
是指整个数据库服务器所允许的最⼤连接数,可使⽤以下命令进⾏查询:
Show variables like ‘max_connections’;
在Windows平台该数值⼀般默认为151,如果超过该数值,由于限制那么系统就会产⽣等待的情况,从⽽影响系统的并发量和吞吐量。
通常情况下,我们会根据服务器的性能适当的调整⼀个合适的值,⽐如500-800,但是要注意该数值的最⼤值为16384,请不要超过这个值。
由于数据库会为每个连接,分配⼀定内存资源和缓冲区,通常为每个连接分配256KB资源,所以设置要慎重⼀些,建议不要超过实际⽤户的1.5倍。
idea没有32位的吗在我们评估最⼤连接数数值的时候,我们可以使⽤以下的⼀些命令,来查看⼀下历史数据,提供参考数据:
Show global status like ‘max_used_connection’;
这个命令⽤于查询,服务器⾃启动以来运⾏期间的最⼤连接数。
show global status like 'Connections';
这个命令可以查询服务器⾃启动以来的连接数的总数,这是⼀个累计值,可以查看数据库连接的频率。
通过检测这些数据,我们就能得到是否需要增加Max_connections的证据。
如果max_used_connections 已经等于或者接近Max_connections,那么我们就需要增加数据库的最⼤值。
按照通⽤的20/80法则,我们建议留有20%的连接数⽤于系统备⽤,即Max_used_connections/Max_connections *100% < 80%。
按照经验,我们会留⽐较⼤的连接数,⽐如留50%的连接数⽤于备⽤。
Max_user_connections
是指对每个⽤户允许的最⼤连接数。
⼀般情况下我们都会让其保持默认值,除⾮有特定的需要或者临时性的⽤户,我们才做出限制。
该参数会限制单个⽤户的最⼤连接值,通常是对单⽤户并发⽤户进⾏限制。
Back_log
show variables like 'back_log';
该参数是⽤来缓存⽤户连接的,相当于⼀个排队的连接池。
在数据库达到最⼤连接数的时候,新的连接请求会被存放在堆栈中,并等待其他连接释放资源。
如果等待的连接数超过这个值,那么新的连接将不会被接受。
这个数值不能超过系统的TCP/IP连接的监听队列数,否则⽆效。
照片宽高像素怎么设置Linux系统我们推荐设置为⼩于512的整数。
注意每个队列会消耗256kb的内存资源。
Max_connect_errors
show variables like 'max_connect_errors';
该参数是指,当连接的错误数达到这个阈值的时候,系统会终⽌⽤户的连接服务。
需要使⽤flush hosts来清除错误,否则就会报错:
Host *** is blocked because of many connection errors.Unblock with ‘mysqladmin flush-hosts’.
当数据库达到这个阈值的时候,数据库认定系统出现了⼀个错误,并且会阻⽌该⽤户后续的请求操作,除⾮使⽤命令刷新系统。如果是内⽹环境,建议可以将数值设置的⾼⼀点,并使⽤任务机制定期刷新hosts。
Connect_timeout
mysql无法连接到服务器show variables like '%connect_timeout%';
指定MySQL服务等待应答的时间,如果超时那么客户端会返回⼀个错误,bad handshake。
在Windows环境下默认值为10秒。
如果是局域⽹或者⾼并发的环境下,可以适当提⾼该数值,⽐如15-20 秒,以避免出现连接错误。
建议该数值要结合thread_cache_size建议适当提⾼该数值,以便提⾼更多的连接数。
Skip_name_resolve:
show variables like '%skip_name_resolve%';
php永久免费空间该设置是⽤于提⾼数据库服务器的连接速度。
MySQL在获得连接请求的时候,会根据请求中的IP地址,来反向查询服务器的主机名,然后再次获取该服务器的IP地址。
如果两次获取的IP地址⼀致,那么才会建⽴连接。
在线英译汉翻译按照这种设计,⼀次连接会耗费较长的时间,主要是⼀种安全上的验证。
excel可执行的函数但是我们不推荐在⼴域⽹环境下,打开这个设置,以防⽌⿊客的攻击。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论