MySQL建立連接慢導致客戶端超時報connection established slowly
更新時間 2024-08-29 19:10:35
最近更新時間: 2024-08-29 19:10:35
分享文章
本文介紹MySQL建立連接慢導致客戶端超時的處理辦法。
場景描述
業務在高峰期時,客戶端經常出現向MySQL建立連接超時,導致系統登錄需要十幾秒。
原因分析
查看MySQL的錯誤日志,觀察是否有如下信息:connection xxx is established slowly。
有上述日志,說明存在某些連接超過一定時間仍未被MySQL處理,客戶端的超時時間大于該時間,就會報錯。線程池處理連接等待與該參數thread_pool_oversubscribe相關。
解決方案
對于存在大量新建連接,建議調大thread_pool_oversubscribe增加線程總數。減少線程重復創建與銷毀部分的開銷,提高性能,同時它也限制了MySQL的running線程數,關鍵時刻可以保護系統,防止雪崩。
正常情況下,線程池適用于大量短連接的場景,如果客戶是長連接,并且連接數量不多(客戶端使用了連接池等情況),線程池的影響也不會很大。