1

私は、8 コアと 16GB RAM で mysql のみを実行している Linux ボックスを使用しています。すべての接続は、codeigniter を使用して php を実行している同じネットワーク内の別のマシン上の Web サーバーから行われます。

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であると言っているので、mysqlへのリクエストを制限しているPHP、apache、またはcodeigniterに他の設定があると思いましたが、見つかりません。私は数日間グーグルを検索して、運がなければ答えを見つけようとしました。

上記のソフトウェアのいずれかに制限が設定されていますか? 必要に応じて構成を投稿します。

ありがとうございました。

4

2 に答える 2

0

httpd.conf で Apache ワーカー プロセスの最大数 (ServerLimit および MaxClients) を確認します。ワーカーあたりの接続数が一定であると仮定すると、ワーカー数が上限に達している可能性があるため、新しい MySQL 接続を要求するものは何もありません。

于 2012-11-20T17:57:23.517 に答える