我正在尝试为MySQL和共享主机所需的资源设置理想的性能设置。
我的问题是,max_connections
到底意味着什么?
是否是向服务器发出的唯一并发请求数?
因此,如果有两个用户,1个打开1个选项卡,另一个打开4个选项卡...并且同时按下所有选项卡重新加载,是否会有5个连接到MySQL数据库?因此,如果我们将这个场景推向:10个人有2个标签,31个人有一个标签,同时按下刷新...我们的max_connections
为50,那么每个人都会被锁定吗?
我问的原因是因为我一直认为网站进入cpu限制模式,因此我想拍摄低max_connections
以保守内存资源
感谢您的帮助
答案 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
值始终受服务器规格限制,如果不使用,则不会发生性能问题。