我的网站每天有5000+用户。所以我改变mysql最大连接在服务器如下
SET global max_connections = 1000000
,我也编辑了我的。conf文件。现在我觉得我的网站加载非常慢。这会影响网站的加载时间吗?请澄清我的疑问。提前感谢
在增加连接限制之前,您需要确保数据库所在的机器能够处理额外的工作负载。可支持的最大连接数取决于以下变量:
-
可用RAM -系统将需要有足够的RAM来处理
-
平台的线程库质量——这将根据
在站台上。例如,Windows可以被Posix
限制它使用的兼容层(尽管该限制不再适用于
)MySQL v5.5及更高版本)。然而,仍然存在内存使用问题
取决于体系结构(x86 vs. x64)以及可以使用多少内存 -
所需的响应时间-增加数量可能会增加
响应请求所需的时间。应该对
进行测试 - 每个连接使用的RAM数量-再次,RAM很重要,
因此,您需要知道每个连接使用的RAM是否会过载 - 每个连接所需的工作负载-工作负载也将
考虑需要哪些系统资源来处理
额外的连接。
另一个需要考虑的问题是,您可能还需要增加打开文件的限制——这可能是必要的,以便有足够的句柄可用。
你可以选择使用像Morpheus这样的服务,而不是在你自己的系统上担心这些设置,它在云上提供数据库作为服务。使用Morpheus,您可以轻松快速地设置多个数据库(包括MySQL, MongoDB, Redis和Elasticsearch)。我们有一个几乎每天使用30个连接的数据库。我们最近将max_connections的数量从400降低到120,并注意到数据库有更多的可用内存。这让我们很吃惊。似乎MySQL占用内存,期望可能获得更多的连接。
mysql(和mariadb)消耗内存的每个连接它能够接受。我不确定其中的具体变量,但在"合理"的情况下;每个连接通常在1 - 16MiB之间。您的数据库服务器可能很慢,因为它像疯了一样交换。
我建议你运行mysqltuner.pl。下面是在我们的DB集群上运行时的一些输出,每天处理大约一百万web请求(我们有max_connections 500 btw):
-------- Performance Metrics -------
[--] Physical Memory : 503.8G
[--] Max MySQL memory : 73.9G
[--] Total buffers: 60.2G global + 7.5M per thread (500 max threads)