我有兩個運行PHP的Apache服務器實例連接到本地的MySQL服務器。PHP到mysql持久連接沒有被使用
由於在同一個PHP頁面(使用不同的參數)的數千個請求的使用在幾分鐘內完成,在一秒鐘內完成,所以我想利用持久的mysql連接,因爲我發現由於操作系統沒有足夠快地回收它,因此我的套接字用完了。
我有一個實例這個工作有此配置:
$link = mysqli_connect("p:$db_server_ip",$dbuser,$dbpassword,"db","8080");
if (!$link) {
error_log("Failed to connected ".mysqli_connect_error());
die('Could not connect: ' . mysqli_connect_error());
}
當我看的MySQL連接數時,我有很多進來我只看到幾百連接http請求的哪在第一臺服務器上很好。
在我認爲是相同的操作系統,apache,php和mysql配置以及版本和php代碼的第二臺服務器上,我沒有看到正在使用的連接,而且正在打最大mysql連接限制,如果我查看進程列表在MySQL中,他們都只是在睡覺。
有人可以解釋爲什麼我看到行爲上的差異,還有其他可供選擇的問題是關於連接是否被重用。
PHP 5.3.3版本的Apache /2.2.15(紅帽)
感謝您的反饋,MySQL的負載低,因爲查詢很快,問題似乎是我的服務器無法創建任何更多的連接在TCP層面從PHP到MySQL,我相信,因爲一旦PHP關閉它操作系統不會將該端口釋放兩分鐘。在服務器上,我有它的工作,它運作良好,我只是無法弄清楚爲什麼第二臺服務器不會以同樣的方式反應。 – mattb
我的最大連接數設置爲2000 – mattb