MySQL 接続を作成し、クエリを実行してから (PHP を介して) 接続を閉じるページで ab (apachebench) を使用して、サイトの 1 つをベンチマークしています。
max_connections の制限を 500 に設定して、my.cnf をハードコーディングしました。
ストレス テストを実行すると、スクリプトから「データベースに接続できません」タイプのエラーが返されますが、MySQL は指定した接続制限に達することはありません。MySQL が一度に約 237 を超える接続を開くことができないかのようです。
現在の my.cnf は次のとおりです。
[mysqld]
max_connections = 500
port = 3306
socket = /var/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 128M
thread_concurrency = 8
max_heap_table_size = 512M
tmp_table_size = 512M
table_cache = 2048
ユーザー制限:
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 16384
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1250
virtual memory (kbytes, -v) unlimited
問題は、PHP または MySQL のいずれかにあるようです (または、もちろん、私たちによる設定ミス)。
ヘルプ、提案、ヒントは大歓迎です - 事前に感謝します。