您好,登錄后才能下訂單哦!
一大早上就接到浩子的QQ襲擾,說現場移動的人一堆的投訴,說dms連不上,查詢沒有數據,都快把他的電話打爆了。
趕緊讓浩子登到數據庫服務器,確認數據庫沒有掛掉,進入數據庫使用 show processlist發現有大量sleep進程,感覺很奇怪,怎么會有這么多sleep進程。
看到IP集中在內網地址176上,登到176根據對應的端口號查看也不是應用程序出問題了,檢查發現也很正常。
看了一下最大連接數,設置的有點小,修改配置增加到1000,重啟數據庫后,sleep暫時消失,很快又有了許多sleep進程。
網上找了一下原因,
1. 使用了太多持久連接
2. 程序中,沒有及時關閉mysql連接
3. 數據庫查詢不夠優化,過度耗時。
找浩子詳細聊了下,移動很多用戶查完數據都不會關掉Ufiner,甚至整天都不會關,造成大量進程占用。這就無語了,現實情況是咱也不能限制對方這么使用,好吧想到設置做個時間限制。
網上搜到就是設置下面兩個參數的值,就是在過期時間后自動清除sleep連接
interactive_timeout:
參數含義:服務器關閉交互式連接前等待活動的秒數。交互式客戶端定義為在mysql_real_connect() 中使用CLIENT_INTERACTIVE選項的客戶端。
參數默認值:28800秒(8小時)
wait_timeout:
參數含義:服務器關閉非交互連接之前等待活動的秒數。
參數默認值:28800秒(8小時)
在配置文件/etc/my-ib.cnf的[mysqld]選項添加這兩個參數,重啟服務器,觀察一段時間后問題解決。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。