有没有办法限制子进程的数量mysqld
?或者不应该担心这个?我的 VPS 只有 512MB 的 RAM。
htop
这是我将其设置max_connections
为 6 并重新启动服务后的输出mysql
:
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
27082 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.41 `- /usr/sbin/mysqld
27121 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.05 | `- /usr/sbin/mysqld
27099 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.23 | `- /usr/sbin/mysqld
27097 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.00 | `- /usr/sbin/mysqld
27096 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.00 | `- /usr/sbin/mysqld
27095 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.00 | `- /usr/sbin/mysqld
27094 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.02 | `- /usr/sbin/mysqld
27093 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.01 | `- /usr/sbin/mysqld
27091 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.00 | `- /usr/sbin/mysqld
27090 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.00 | `- /usr/sbin/mysqld
27089 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.00 | `- /usr/sbin/mysqld
27088 mysql 20 0 136M 28868 5800 S 0.0 5.7 0:00.00 | `- /usr/sbin/mysqld
我已经使用 aptitude 安装了 MySQL。
$ aptitude search '~i'
i A mysql-client-5.1 - MySQL database client binaries
i A mysql-client-core-5.1 - MySQL database core client binaries
i A mysql-common - MySQL database common files, e.g. /etc/mysql/my.cnf
i mysql-server - MySQL database server (metapackage depending on the latest version)
i A mysql-server-5.1 - MySQL database server binaries and system database setup
i A mysql-server-core-5.1 - MySQL database server binaries
答案1
您可以使用 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。
答案2
我不知道这些子进程到底是什么,但我相信没什么好担心的。
您的htop
读数显示/usr/sbin/mysqld
总共使用了 136 MB 的 RAM(来自字段VIRT
)。子进程没有使用任何更明显的 RAM 量。136 MB 可能看起来很多,但是MySQL 对内存的要求很高。
如果你认为CPU使用率是一个问题,其实不应该。该TIME+
领域几乎没有使用任何mysqld
流程。
我曾经也拥有一台内存为 512 MB 的 VPS。正是由于我选择的软件不当,导致内存不足——我尝试运行多个虚拟服务器虚拟分钟. 512 MB 并不多,而且虚拟化解决方案开放VZ不允许您将任何东西交换到磁盘,因此请注意可能增加 RAM 使用量的其他因素。