[MySQL中的配置參數(shù)interactive_timeout和wait_timeout(可能導(dǎo)致過多sleep進程的兩個參數(shù))]
1)interactive_timeout:
參數(shù)含義:服務(wù)器關(guān)閉交互式連接前等待活動的秒數(shù)。交互式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端赢笨。
參數(shù)默認值:28800秒(8小時)
(2)wait_timeout:
參數(shù)含義:服務(wù)器關(guān)閉非交互連接之前等待活動的秒數(shù)。
在線程啟動時,根據(jù)全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值织咧,取決于客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義)映琳。
參數(shù)默認值:28800秒(8小時)
MySQL服務(wù)器所支持的最大連接數(shù)是有上限的嬉橙,因為每個連接的建立都會消耗內(nèi)存,因此我們希望客戶端在連接到MySQL Server處理完相應(yīng)的操作后做院,應(yīng)該斷開連接并釋放占用的內(nèi)存。如果你的MySQL Server有大量的閑置連接型酥,他們不僅會白白消耗內(nèi)存山憨,而且如果連接一直在累加而不斷開,最終肯定會達到MySQL Server的連接上限數(shù)弥喉,這會報'too many connections'的錯誤郁竟。對于wait_timeout的值設(shè)定,應(yīng)該根據(jù)系統(tǒng)的運行情況來判斷由境。在系統(tǒng)運行一段時間后棚亩,可以通過show processlist命令查看當前系統(tǒng)的連接狀態(tài),如果發(fā)現(xiàn)有大量的sleep狀態(tài)的連接進程虏杰,則說明該參數(shù)設(shè)置的過大讥蟆,可以進行適當?shù)恼{(diào)整小些。
問題:
如果在配置文件my.cnf中只設(shè)置參數(shù)wait_timeout=100,則重啟服務(wù)器后進入纺阔,執(zhí)行:
Mysql> show variables like “%timeout%”;
會發(fā)現(xiàn)參數(shù)設(shè)置并未生效瘸彤,仍然為28800(即默認的8個小時)。
查詢資料后笛钝,要同時設(shè)置interactive_timeout和wait_timeout才會生效质况。
【mysqld】
wait_timeout=100
interactive_timeout=100
重啟MySQL Server進入后,查看設(shè)置已經(jīng)生效玻靡。