Bei zu vielen gleichzeitigen Verbindungen zu MySQL können alle Apache-PHP-Sites keine Verbindung zur Datenbank herstellen

Bei zu vielen gleichzeitigen Verbindungen zu MySQL können alle Apache-PHP-Sites keine Verbindung zur Datenbank herstellen

Ich verwende RDS von Amazon und habe die MySQL-Konfiguration maximal optimiert. Allerdings wird die Verbindung aller Sites zu MySQL unterbrochen, wenn die Anzahl der Verbindungen eine bestimmte Anzahl von Aktivitäten erreicht. Es handelt sich um eine interne Netzwerkkonfiguration, keine Bandbreitenbeschränkung und eine ECS-Instanz mit 128 GB RAM und 32 Kernen von Windows Server 2019 Datacenter.

Im Folgenden sind meine MPM, Httpd.conf und PHP.ini aufgeführt. Könnte die folgende Konfiguration die Ursache sein?

**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

Alle rufen von derselben Instanz aus auf und teilen dieselbe PHP-Datei, die die DB-Verbindung initiiert. Ungefähr 20 Verbindungen, die von 20 Sites geteilt werden und 200 Seiten gleichzeitig öffnen. Die DB wird die Verbindung ablehnen. Folgendes ist die Einstellung von RDS innodb_io_capacity 18446744073709551615 innodb_io_capacity_max 4294967295 innodb_read_io_threads 64 innodb_write_io_threads 64

Einzelne RDS-Instanz mit 20 DB-Instanzen.

PHP-Code zum Initiieren der DB-Instanz für die Site-globale Nutzung.

$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");

verwandte Informationen