我应该为 MySQL 设置 max_connections 什么?

Dee*_*epu 7 mysql configuration

我在 Linux Centos 上有 MySQL 5.1.35。Linux 服务器有 2GB RAM 和 14GB 磁盘空间。

我使用 Java 中的 Restlet 框架创建了一些 Web 服务,该框架拥有 1,000 多个用户。

我应该max_connections为最大并发连接设置什么?

Shl*_*ach 7

这里没有公式。您应该根据您的应用程序需求,根据您认为合理的内容限制您的数据库。

通常,具有使用连接池的应用程序的服务器不应需要超过几百个并发连接。中小型网站100 - 200可能就足够了。

我通常使用500 - 800 的值设置一个新服务器,max_connections看看它是如何进行的。您始终可以通过以下方式动态更改

set global max_connections := 567;
Run Code Online (Sandbox Code Playgroud)

但是,请确保您设置了正确的open_files_limit. 在 linux 上,默认情况下,您的进程限制为1024 个文件。这是非常低的,因为每个线程、连接,当然还有文件——Linux 中的文件句柄。所以设置open_files_limit一些慷慨的数字(比如8192)来清除你与操作系统的许多联系。

我应该注意到我使用过具有数千个开放连接的 MySQL 服务器 - 这很酷。但是,在大多数情况下,这些连接中的绝大多数会坐着不动(闲置)。

总而言之,我会使用看似正常的应用程序需求 + 峰值事件的一些阈值。