max_connections的真正含义是什么?

时间:2011-12-31 04:33:58

标签: mysql drupal

我正在尝试为MySQL和共享主机所需的资源设置理想的性能设置。

我的问题是,max_connections到底意味着什么?

是否是向服务器发出的唯一并发请求数? 因此,如果有两个用户,1个打开1个选项卡,另一个打开4个选项卡...并且同时按下所有选项卡重新加载,是否会有5个连接到MySQL数据库?因此,如果我们将这个场景推向:10个人有2个标签,31个人有一个标签,同时按下刷新...我们的max_connections为50,那么每个人都会被锁定吗?

我问的原因是因为我一直认为网站进入cpu限制模式,因此我想拍摄低max_connections以保守内存资源

感谢您的帮助

3 个答案:

答案 0 :(得分:16)

  

允许的连接数由max_connections系统变量控制。当MySQL与Apache Web服务器一起使用时,默认值为151以提高性能。 (以前,默认值为100.)如果需要支持更多连接,则应为此变量设置更大的值。

     

mysqld实际上允许max_connections + 1个客户端连接。额外连接保留供具有SUPER权限的帐户使用。通过向管理员而不是普通用户(不应该使用它)授予SUPER权限,管理员可以连接到服务器并使用SHOW PROCESSLIST来诊断问题,即使连接了非特权客户端的最大数量。请参见第12.7.5.30节“SHOW PROCESSLIST语法”。

     

MySQL可以支持的最大连接数取决于给定平台上的线程库质量,可用RAM量,每个连接使用多少RAM,每个连接的工作负载以及所需的响应时间。 Linux或Solaris应该能够支持常规的500到1000个并发连接以及多达10,000个连接,如果你有许多GB的可用RAM,并且每个连接的工作负载很低或响应时间目标不高。 Windows仅限于(打开表×2 +打开连接)< 2048,因为该平台上使用了Posix兼容层。

     

可能需要增加开放文件限制。另请参见第2.5节“在Linux上安装MySQL”,了解如何提高MySQL可以使用的句柄数量的操作系统限制。

来自:MySQL 5.6 Reference Manual:: C.5.2.7 Too many connections

答案 1 :(得分:15)

是的,为每个页面打开了一个单独的连接。但是,假设您没有做任何数据库密集型操作,那么一旦页面被提供给客户端,连接将是短暂的并且自动关闭。

如果确实超过了最大连接数,则任何后续连接尝试都将失败。

答案 2 :(得分:0)

max_connections是一个全局变量,其 minimum 值可以为1, maximum 值可以为100000。但是,众所周知,将max_connections设置为非常高的值对于性能而言并不太好。几代系统管理员都遵循此规则。

在性能方面,max_connections值始终受服务器规格限制,如果不使用,则不会发生性能问题。

Please use this for more information.