【发布时间】:2012-11-20 17:54:39
【问题描述】:
我在 linux 机器上只运行 8 核和 16GB 内存的 mysql。所有连接都来自同一网络中另一台机器上的 Web 服务器,该机器使用 codeigniter 运行 php。
我无法在 mysql 上获得超过 150 个连接。
我的 my.cnf 是:
[mysqld]
user=mysql
port = 3306
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/var/
skip-external-locking
max_connections=500
max_user_connections=500
open-files-limit = 500
key_buffer_size = 2048M
max_allowed_packet = 32M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
myisam_sort_buffer_size = 128M
thread_cache_size = 250
table_definition_cache = 1024
query_cache_size = 32M
query_cache_limit = 32M
table_cache=1024
max_heap_table_size=1024M
key_buffer=2048M
wait_timeout=60
thread_concurrency = 16
long_query_time = 1
tmp_table_size=256M
show status 返回 max_connections 和 max_user_connections 为 500。
由于 mysql 说连接限制是 500,我认为 PHP、apache 或 codeigniter 中还有其他设置限制了对 mysql 的请求,但我找不到任何设置。我已经在谷歌上搜索了几天试图找到答案,但没有任何运气。
是否对上述任何软件设置了限制?如有必要,我会发布配置。
谢谢。
【问题讨论】:
-
我认为我被限制在 150 个客户端,因为我使用的是名为 Siege 的负载测试软件。但是当我使用带有 200 个并发连接的 ab 时,也会发生同样的事情。我只有 150 个 mysql 连接。但奇怪的是,其他使用浏览器的客户端可以建立超过 150 个的 mysql 连接。所以我对这篇文章的问题可能是“如何使用负载测试软件测试超过 150 个并发连接的 Web 应用程序负载,例如ab?"
标签: mysql connection limit