簡而言之:我的JBoss實例運行正常,但幾天後它的性能正在慢慢下降。Jboss在一段時間後變慢了
詳細信息: 我已經在64位RHEL 4機器上運行了JBoss 5.1.0-GA和Java 1.6.0_18-b07(x64)的設置。該硬件是一款採用8核Xeon X5550/20G內存的虛擬機。
部署在JBoss的產物含有在其上執行一耐久試驗一個web服務。 過程中不涉及數據庫。
該測試使用的soapUI與4個線程執行,並且測試被配置爲創建20%的CPU使用率。
讓說,在第一次的平均響應時間是300毫秒。兩天後,響應時間現在是600毫秒,我不明白。 當然,我做了一些檢查:
- 沒有內存泄漏(與JProfiler的確認)
- 堆MEM始終圍繞25-50%,燙髮空間的使用率是50%
- GC是幾乎從來沒有忙
- 所有線程都檢查線程轉儲
一段時間後閒置做一些進一步的調查,我與JProfiler的一個cpu配置文件在開始(當它仍然快),並在(慢)結束。我所看到的是,每一個電話都是100%慢! 即使調用一個簡單的Map#put()。 (調用次數和這些地圖的內容是相同的)。 運行一個分析器時,沒有線程被阻塞的跡象,只是運行線程。
有沒有人有一個線索是什麼造成的性能下降? 謝謝!
更新:通過升級Java版本到1.6.0_24解決了性能的下降!
雖然出來的選擇,我是通過Java虛擬機的所有發行說明掃描,並在1.6.0_23發現了性能和可靠性修復。另請參閱 1.6.0_23 release notes
jvm升級後,性能保持不變,並且不會在幾天內降級。由Jan發現
恭喜 - 你可以發佈你的「更新」作爲回答,然後接受這個後來作爲很好的答案。 – 2011-04-01 12:04:08