MariaDB最大连接数简介

1,930 阅读5分钟

MariaDB最大连接数的定义

  • MariaDB的最大连接数在默认情况下被配置为150个,另外还有一个连接被用于根访问,但如果还没有使用的话,就会变成151个连接。
  • 名为max_connections的系统变量控制了允许的连接数。100是默认值,对于更多,我们需要配置系统变量的大值。
  • 最大连接数在MariaDB SkySQL上得到了加强,以允许在每个实例和每个服务规模的基础上有一个明显的并发数据库连接数。
  • 通过SkySQL配置管理器,最大连接数的设置将不是客户可调整的。因此,我们可以与SkySQL Power Tier的客户联系,讨论传统的调整需求。

如何操作?

MariaDB/MySQL可以接受的连接数是由max_connections这个系统变量决定的。为此,最初,我们需要确认用户要求使用的max_connections的新的最大值是什么。当用户想增加MariaDB/MySQL的连接数时,应该考虑以下几个因素,因为系统支持的最大数量取决于这些因素:

- 可用的RAM数量
- 每个连接将占用多少RAM(因为简单的查询命令需要的RAM比劳动密集型的连接要少。)
- 可以接受的响应时间。

MySQL错误 太多的连接

  • 在MySQL 5.5中,默认允许的最大并发客户端连接数是151。但是,当达到max_connections的限制时,如果有人试图连接MySQL服务器,就会收到 "Too Many Connections "的错误。当你试图连接服务器mysqld时,你可能会收到一个错误,即太多连接,这意味着所有现有的连接被另一个客户端使用。
  • MySQL授权一个额外的连接在最大连接数限制的顶层,该数据库由SUPER权限组成,这样就可以识别连接问题。基本上,这个SUPER权限拥有管理员级别的用户权限。因此,我们需要逃避应用程序用户承认的SUPER权限。
  • MySQL为每个客户端连接实现了一个单线程,以及多个活动线程,这被认为是性能杀手。通常情况下,大量的同步连接并行运行查询命令,可能会导致重大减速,并有可能出现死锁。
  • 尽管MySQL的改进每天都在进行,但内存使用量的增长仍然是由于成百上千的活动连接造成的,每个连接都需要每个线程的缓冲区。此外,隐含在服务器内存表中的内存需要更多的内存,此外还有全局缓冲区的内存需求。总的来说,每个连接都可能应用max_heap_table_size/tmp_table_size,尽管它们不是在每个新连接中立即分配的。
  • 这是受每个连接的内存使用量和RAM的影响的。但是如果在应用端应用连接池,那么max_connections必须大于max connections。当预测到大量的连接时,这种连接池被认为是一个很好的替代方案。

MariaDB最大连接数实例

我们需要按照下面的步骤来配置max_connections。

  • 更新文件my.cnf,其位置为/etc/my.cnf,使用以下命令进行编辑。
Sudo nano /etc/my.cnf

在第一行的下面公开。

[mysqld]

我们将添加一行作为:

Max_connections = [preferred new max digits]

例子:对于设置max_connections应该是210,那么文件的最初两行将被读作:

[mysqld] Max_connections =210

在这之后保存文件,你可以退出了。

配置GLOBAL

我们需要登录到MariaDB/MySQL的命令行客户端,以下列方式编写查询。

Mysql –u root -p

设置max_connections的新值,如下所示。

SET GLOBAL max_connections = [preferred new max digits];

假设为设置max_connections接近210,然后查询命令将被写成:

SET GLOBAL max_connections =210;

现在,我们将离开MariaDB/MySQL打出的命令为:

Quit;

- 现在,我们将执行SHOW命令,列出所有为MariaDB/MySQL配置的变量,当向上滚动时,用户可以得到变量的值,即max_connections。

SHOW variables;

输出

Mariadb MAX CONNECTION 1

建议改变该值的行动是确定的方法,然后恢复MariaDB,这将破坏所有确定的连接。因此,让我们来看看修改配置文件中max_connections值的查询。

Max_connections = 210;

在重启服务器MariaDB后,你可以查看执行命令时交付的新值,如下图所示。

SET GLOBAL max_connections = 210;

输出

2

如何增加MariaDB的最大连接数?

为了实现比100k更多的连接,甚至更进一步,有三个模块可以达到这个max_connections。

  • 正确训练网络限制
  • Percona服务器中的线程池(资源被熟练地管理,响应时间增强。)
  • 通过服务器盒上的多个IP地址(每6万个连接约有一个IP地址。)

太忙的系统可能会提供一个太多连接的错误,因此,当线程连接的数量超过服务器变量,即max_connections,那么就要考虑进行修改。这个错误象征着由于缓慢的查询或任何瓶颈而发生的症状,尽管如此,如果服务器执行得很顺利,那么可以通过提高相同的系统变量的值来解决这个问题。这种变化需要在两个地方进行。

1.应更新my.cnf文件,以便在恢复MariaDB/MySQL服务器时可以执行新值。
2.编写命令SET GLOBAL,用于修改执行中的MariaDB/MySQL服务器上的值。

巧合的是,使用这种技术,MariaDB/MySQL将不需要恢复MariaDB/MySQL,所以也可能不实行任何停机。

总结

  • 根据工作量的不同,我们可以为max_connections设置适用的值,因为这没有固定的规则。
  • 根据MySQL文档,大多数Linux系统,没有任何困难,必须能够支持大约500-1000个连接。
  • 我们可以在 "MariaDB Xpand的最大连接数调整 "的链接中获得更多关于最大连接数的信息,以及MariaDB平台的分布式SQL。