我注射壓力測試到我的web應用程序連接到MySQL服務器,我的MySQL監控的SHOW PROCESSLIST。Mysql顯示進程列表列出很多進程sleep和info = null?
當負載高(高交換I/O)我得到很多的過程就像:
| 97535 | db| localhost | userA | Sleep | 515 | | NULL
| 97536 | db| localhost | userA | Sleep | 516 | | NULL
| 97786 | db| localhost | userA | Sleep | 343 | | NULL
| 97889 | db| localhost | userA | Sleep | 310 | | NULL
但我不明白爲什麼他們仍然存在,沒有被殺死?這最終導致使用所有的max_connections並停止處理傳入的請求我的應用程序...
任何想法是那些流程,以及他們在那裏做:)?
是否有任何MySQL的超時變量,我可以調整,以避免這種情況? – AlfaTeK 2010-10-29 16:52:09
您可以設置WAIT_TIMEOUT的東西更小(http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout)或提高連接限制。然而,你真的想在應用程序方面解決這個問題。掛起數據庫端的連接可能會導致關閉連接的風險,就像應用程序嘗試使用它一樣,可能會導致應用程序錯誤。你使用的是什麼數據庫連接庫? – 2010-10-29 18:24:23
@KeithRandall但是如何識別Null進程? – Khuram 2012-08-06 09:16:30