Mysql
從 Web 到數據庫伺服器的大量打開連接
我執行 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_timeout
mysqld 配置中的變數。查看MySQL 文件以獲取更多資訊更新:正如 ChristopherEvans 所指出的,您可以直接連接到 mysql 套接字而不是使用 IP 端點,以避免用完本地介面上未使用的埠