當MySQL並發連線過多時,所有Apache-PHP網站無法連線到DB

當MySQL並發連線過多時,所有Apache-PHP網站無法連線到DB

我正在使用亞馬遜的 RDS,並將 MySQL 配置調整為最大。但是,當連線數達到一定的活動數量時,所有網站都會停止與MySQL的連線。它是內部網路設定、無頻寬限制和 128GB 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 檔案。約 20 個連線由 20 個網站共享,同時開啟 200 個頁面。資料庫將拒絕連線。以下是RDS的設定 innodb_io_capacity 18446744073709551615 innodb_io_capacity_max 4294967295 innodb_read_io_threads 64 innodb_write_io_threads 64

具有 20 個資料庫實例的單一 RDS 實例。

用於啟動資料庫執行個體以供網站全域使用的 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");

相關內容