0
我很確定我的連接正在泄漏,導致Tomcat進程(Windows)鎖定。用盡c3p0池連接導致高CPU?
在鎖止狀態下,當症狀:
- 高CPU(50%+掛)
- 停留在C3P0數據庫的TCP連接
- 大多數/全部Apr線程大量.. .getConnection ... awaitAvailable
如果理論是正確的,我們正在泄漏連接,並最終用完它們,這是否會導致高CPU使用率?
我注意到繁忙的線程實際上大多是GC。
我很確定我的連接正在泄漏,導致Tomcat進程(Windows)鎖定。用盡c3p0池連接導致高CPU?
在鎖止狀態下,當症狀:
如果理論是正確的,我們正在泄漏連接,並最終用完它們,這是否會導致高CPU使用率?
我注意到繁忙的線程實際上大多是GC。
這並不明顯,爲什麼連接泄漏會導致CPU使用率過高,除非您有非常大的maxPoolSize
,並且對未完成的連接有一些開銷。
無論如何,要做的事情是解決您的連接泄漏。見例如C3P0 Spring Hibernate: Pool maxed out. How to debug?
如果一旦連接泄漏得到解決仍然存在CPU問題,那麼您就不會有困惑和噪音來處理問題了。但連接泄漏可能是問題,不知何故。
感謝您的回覆。我的池大小爲160,並且在發生這種情況時,會經常在此awaitAvailable狀態中看到很多(或關閉)的池。清理一些我們發現的泄漏源已經顯示出積極的測試結果。以及部署其他c3p0調試技巧。 – Bobby