我有一個偉大的執行,然後突然一個頁面請求將凍結和時間出來,然後一切都會變花花公子一點點,同樣的事情發生在一個Web應用程序。如何獲得端到端的性能分析的tomcat
我有很難得到到這條底線,因爲有可以分析的這麼多的變數。
有沒有什麼辦法:一種工具或步走的計劃,可以幫助我得到這個底部,基本上是從頁面請求整件事情分析數據庫調用和識別潛在的問題?我使用New Relic和MAT,而我剛開始使用Javamelody,但說實話:哪裏需要關注?而且通常當一個頁面凍結/超時時,不清楚瓶頸在哪裏。什麼是門檻/紅旗要注意什麼?
親切的問候, 馬克
隨着jstack,我會添加jstat到工具箱,因爲intermitent暫停聽起來像一個停止世界的GC暫停。如果凍結髮生在GC計數增加的同時,則很可能是GC。然後,您可以激活詳細的GC日誌以獲取更多詳細信息。 –
感謝您的提示。回顧我的jstack輸出。我看有點令人費解出頭的對我說: 我看到一個數字,正在等待 我看到可用的(在我的配置中定義的10最低池大小和最多3個C3P0 ThreadPoolAsyncRunners的C3P0 resourcepool成爲可用的HTTP線程池大小爲100.所有3個都是「鎖定的」 - 鎖定<0x000000009d5cd688>(一個com.mysql.jdbc.util.ReadAheadInputStream) 所以我想我的答案似乎是c3p0池大小設置不正確。找出爲什麼以及如何解決它 – Marc
它也可能是你的MySQL數據庫有一個限制性的配置,只允許少量的連接(或與另一個應用程序共享) – mprivat