2016-07-06 108 views
0

我在web應用程序中遇到了平均響應時間方面的性能問題。Tomcat響應時間高峯

我堆棧

甲骨文的Java 7 Tomcat的7.62/61 AWS Linux機器 Java的選擇採用-Xms1G -Xmx4G -XParallelGCThreads = 4(未完成將增加更多) 使用新的遺物

從我的網絡應用程序,我打電話給其他服務(在另一臺機器上的另一個Java進程)

我正在使用Executors.newCachedThreadPool()(我知道這是壞的,但不能將我的問題歸因於此事)另一個進程休息。

現在,我的新遺物顯示每15-20分鐘左右Web應用平均響應時間的峯值。線程數量在那時增加。 (只有可見的東西)CPU卻並沒有驚人的增加。 (只有GC收集%年齡)

在服務方面,平均響應時間永遠不會增加,停留時間可能會更長或更短平在穗期間。

向下鑽取webap來電顯示的時間增加對那些服務雖然在外部服務(兩個應用程序統計之間的感覺就像一個差異給我一些新的遺物什麼想法?)

  1. 有人可以建議的方式來解決問題?
  2. 我還需要收集哪些數據才能解決這個問題?
  3. 有人可以點亮新的遺蹟缺失點嗎?
  4. 從它的外觀來看它是GC還是線程池?

回答

0

要識別GC問題:啓用GC日誌記錄,例如,通過GCViewer

運行生成的文件來標識的線程池長時間運行的任務:將一個分析器,然後看看線程的歷史,看看是否執行程序池的線程不斷繁忙或有一些空閒時間

0

您應該嘗試G1 GC。它會縮短長時間gc,從而導致秒殺