首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改限制: max_connections: 214

更改限制: max_connections: 214
EN

Database Administration用户
提问于 2016-11-15 03:28:40
回答 2查看 7.4K关注 0票数 1

我使用的是MySQL版本5.7.15,ubuntu0.16.04.1。当我启动MySQL时,我会在日志下面,

代码语言:javascript
复制
2016-11-06T13:44:56.838233Z 0 [Warning] option 'table_open_cache': unsigned value 33554432 adjusted to 524288
2016-11-06T13:44:56.839061Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 1049386)
2016-11-06T13:44:56.839078Z 0 [Warning] Changed limits: max_connections: 214 (requested 800)
2016-11-06T13:44:56.839082Z 0 [Warning] Changed limits: table_open_cache: 400 (requested 524288)

$ ulimit \ grep打开的文件(-n) 1024

在谷歌中,它被指定为需要增加open_files_limit值才能有更多的max_connections。

仅仅在/etc/ MySQl /mysql.con.d/mysqld.cnf上设置以下值并重新启动MySQl服务器就足够了吗?

代码语言:javascript
复制
open_files_limit = 2048

max_connections = 800

table_open_cache = 600

还有其他方法可以在不重新启动MySQL服务器的情况下更改值吗?

在open_files_limit配置文件上设置MySQL是否足够?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2016-11-16 02:06:49

首先,您必须更改操作系统以增加open files (-n) 1024。MySQL的价值只反映了这一点。

max_connections = 214是一个慷慨的数字。让我们讨论一下你是否真的需要更多。

来自一个服务器的24个连接可能过多。如果有那么多人,他们可能会被彼此绊倒。最终结果是在不增加吞吐量的情况下增加延迟。我见过这样的情况,最好的解决办法是更早,而不是以后。

table_open_cache的单位是表,而不是字节。而且它是一个缓存,所以通常可以有一个较小的数字。(有一些STATUS值表示它是否“太小”。)

底线:在重新启动mysqld之前,减少客户端线程的数量。

票数 0
EN

Database Administration用户

发布于 2016-11-15 11:13:34

始终可以在http://dev.mysql.com/doc/refman/5.7/en/dynamic-system-variables.html上检查变量是否是动态的。

或者直接查看参数:http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_打开_文件_限制

如果它是动态的,您可以:

代码语言:javascript
复制
set global <variable_name> = <value>;

不过,不要忘记更改您的my.cnf,否则下次重新启动将覆盖它。

如果不是,则必须重新启动MySQL才能实现。甲骨文正致力于获得越来越多的动态变量,您可以看到这一趋势正在通过5.5 -> 5.6 -> 5.7。不幸的是,总是会有需要重新启动的参数。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/155260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档