我有一個正在兩倍的時間來對DEV和QA服務器比我的本地機器上運行的Java應用程序。當在Dev和QA上工作時,我會在1:45 - 2:30(hh:MM)左右獲得時間,而我的本地時間是0:45 - 1:10左右。 我想確定什麼可能會導致服務器上的Java應用程序的性能降低。
我已經調查至今都未提供答案:
- 測試與相同尺寸maxheap
- 在CPU觀察壓力。當運行批處理應用程序時,Dev大約有75%的時間閒置,所以我認爲這不是問題。
- 在Dev上觀察ram。 Dev有足夠的內存來爲JVM提供指定的maxHeap(128mb)。如果我理解正確,只要機器提供的MaxHeap大小正確,機器的可用內存就無關緊要了。
- 確保java版本不會引起問題。
- 設置日誌記錄級別相同:「INFO」
- 處理器:服務器具有2.67GHz處理器我的地方只有2.19GHz
其他信息。
- 服務器操作系統:Linux
- 本地計算機操作系統:Windows
- 單線程的Java應用程序。
- 應用程序正在讀取和寫入文本文件,並且還向數據庫(hibernate c3p0)調用 。這些是我最大的/只有昂貴的操作
我已經搜查了幾十個網站,以確定根本原因,但我一直無法確定是什麼原因造成的問題,將不勝感激。
「75%空閒」意味着一個核心以100%運行,另外三個空閒,還是真的意味着測試負載僅佔用可用CPU資源的25%? –
如果測試負載實際上只使用潛在可能使用的最大CPU的一小部分,那麼它可能會因I/O而變慢。 –
@JohnBollinger後者「負載消耗的CPU資源只佔其CPU資源的25%?」這是一個共享服務器,所以我的應用程序和服務器上的其他人共同使用的只有25%。不知道它是否重要,但我的應用程序正在讀取和寫入文本文件,並且還調用了數據庫。這些是我最昂貴的操作 –