阿里云Linux CentOS8.1 64位服务器安装LNMP(Linux+Nginx+MySQL+PHP) 并发调试之MySQL配置

时间:2022-04-13 06:59:43

mysql高并发配置 要在mysqld下设置

1、 修改back_log参数值:由默认的50修改为500.(每个连接256kb,占用:125M)

 back_log=500

back_log值指出MySQL暂时回答新请求之前的短时间内有多少个请求可以被存在堆栈中。也就是说,如果MySQL的连接数达到max_connections时,新来的请求会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果

等待连接的数量超过back_log,将不被授予连接资源。将会报 unauthenticated user | xxx.xx.xxx.xxx | NULL | Connect | NULL | login | NULL

back_log值不能超过TCP/IP连接的侦听队列的大小。若超过则无效,查看当前系统的TCP/IP连接的侦听队列的大小的命令:cat/proc/sys/net/ipv4/tcp_max_syn_backlog

(修改系统内核参数:http://www.51testing.com/html/64/n-810764.html)

查看MySQL当前系统默认的back_log值,命令:show variables like 'back_log';

2、修改wait_timeout 参数值,由默认的8小时,修改为30分钟(单位为 秒)。

 wait_timeout=1800

这个参数可以理解为,MySQL客户端的数据库连接闲置最大时间值。就是你的MySQL连接闲置超过一定时间后会被强行关闭。MySQL的默认值为8小时,查看命令为

show variables like 'wait_timeout'

设置这个值可以节省内存资源,比如你的网站有大量的MySQL连接请求(每个MySQL连接都是要内存资源开销的),由于你的程序的原因有大量的连接请求空闲着啥事也不干,白白占用内存资源,或者导致MySQL超过最大连接数,无法新建

连接导致“Too many connections”的错误。

在设置之前,你可以查看一下你的MySQL的状态(可用 show processlist),如果经常发现MySQL中有大量的sleep进程,则需要修改 wait_timeout 。

3、修改max_connections参数值,由默认的 151 改为 3000.

max_connections=3000

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

存。所以要适当调整该值,不能盲目提高设置。可以通过'conn%'通配符查看当前状态的连接数量,以定夺该值的大小。

MySQL服务器允许的最大连接数为 16384.

查看系统当前的最大连接数:

show variables like 'max_connections';

下一篇随笔总结一下并发测试工具ab

本文参考的主要文章:

mysql高并发配置