MySQLへの同時接続数が多すぎると、すべてのApache-PHPサイトがDBに接続できなくなります。

MySQLへの同時接続数が多すぎると、すべてのApache-PHPサイトがDBに接続できなくなります。

私は Amazon の RDS を使用しており、MySQL 構成を最大に調整しています。ただし、接続数が特定のアクティビティ数に達すると、すべてのサイトが MySQL への接続を停止します。これは内部ネットワーク設定で、帯域幅制限はなく、128 GB RAM 32 コアの Windows Server 2019 Datacenter ECS インスタンスです。

以下は私の MPM、Httpd.conf、および PHP.ini です。次の構成が原因でしょうか?

**MPM ConfigurationX**
<IfModule mpm_winnt_module>
    ThreadLimit       2000000
    ThreadsPerChild   2000000
    MaxConnectionsPerChild 0
    MaxRequestsPerChild    0
</IfModule>

**HTTPD2.4 Configuration**
KeepAliveTimeout 180
MaxKeepAliveRequests 10000
Timeout 3200
FcgidMaxRequestLen 51200000
<IfModule mpm_winnt_module>
    MaxConnectionsPerChild 10000000
    ThreadsPerChild 1920
</IfModule>

**PHP7.0 Configuration**
max_execution_time = 1800
max_input_time = 60
memory_limit = 65536M

すべて同じインスタンスから呼び出し、同じ PHP ファイルを共有して DB 接続を開始します。約 20 の接続が 20 サイトで共有され、同時に 200 ページが開かれます。DB は接続を拒否します。以下は RDS の設定です。innodb_io_capacity 18446744073709551615 innodb_io_capacity_max 4294967295 innodb_read_io_threads 64 innodb_write_io_threads 64

20 個の DB インスタンスを備えた単一の RDS インスタンス。

サイトのグローバル使用のために DB インスタンスを初期化するために使用される PHP コード。

$db1 = new MySQLi("mysql.abc.com","testing","abc#123","testing",3306);
$db1->query("set names utf8");
unset($db2);
$db2 = new MySQLi("mysql.abc.com","testing","abc#123","testing",3306);
$db2->query("set names utf8");

関連情報