限制 MySQL 分叉进程

限制 MySQL 分叉进程

如何限制 MySQL 派生的进程数量?我注意到启动时至少有 10 个子进程。这是一个未投入生产的开发数据库;因此没有用户连接到它。

答案1

您可以尝试通过更改以下值来减少进程/线程的数量:

最大用户连接数

最大连接数

最大延迟线程数

例如在my.cnf中:

max_connections = 1
max_user_connections = 1
max_delayed_threads = 1

但这并不能保证进程/线程数量会减少,因为并非所有进程/线程都与连接相关。

答案2

使用 max_user_connections 限制单个 mysql 用户同时可以拥有的连接数

http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_user_connections

您需要尝试几种不同的 max_connections 和 max_user_connections 设置/组合才能获得最佳性能,而不会耗尽连接数。

此外,连接数和线程数之间的比例也不是 1:1。

http://dev.mysql.com/doc/internals/en/threads.html

答案3

@b13n1u 所说的。如果这没有帮助,任何程序都可能受到标准ulimit限制的限制,参见这个问题作为相关的例子。

为了限制mysqldLinux 中的进程,请ulimit -u 5在启动前设置例如“ ” mysqld,或者将其添加到 mysql 初始化脚本中。

相关内容