Mysql

從 Web 到數據庫伺服器的大量打開連接

  • January 20, 2012

我執行 2 個伺服器、1 個 Web(nginx/php)、1 個數據庫(mysql)。

Nginx 每秒大約有 1500 個活動程序,mysql 狀態顯示平均大約有 15 個目前選項連接。

現在我今天開始跑步:netstat -npt | awk '{print $5}' | grep -v "ffff\|127\.0\.0\.1" | awk -F ':' '{print $1}' | sort -n | uniq -c | sort -n

這表明從我的網路伺服器到我的數據庫伺服器 IP 有超過 7000 個活動連接。這似乎有點極端。我不使用 PHP 中的持久連接來連接到 Mysql。

知道為什麼有這麼多打開的連接嗎?

雖然這有點stackoverflow’y,但這裡是:

可能是因為您沒有關閉程式碼中的連接。如果是這樣,我建議您切換到mysql_pconnect(),或者只是添加mysql_close()到所有請求的 php-pages 的末尾

如果與 mysql 伺服器的所有連接都處於 state: TIME_WAIT,請嘗試降低wait_timeoutmysqld 配置中的變數。查看MySQL 文件以獲取更多資訊

更新:正如 ChristopherEvans 所指出的,您可以直接連接到 mysql 套接字而不是使用 IP 端點,以避免用完本地介面上未使用的埠

引用自:https://serverfault.com/questions/352016