2013-02-14 78 views
1

我們成功遷移了Web應用程序從WebLogic中的Tomcat 7 Web應用程序是內置使用。的Weblogic到tomcat遷移性能問題

  1. jsp的
  2. 使用WebLogic數據源

當我們遷移到Tomcat我們開始使用DBCP。但想到更改爲Tomcat JDBC連接池。請建議這會有幫助。

應用程序必須在服務器端執行一些繁重的事務。

但是這個Tomcat未交付的性能和穩定性,我們在weblogic得到。

有太多的GC線程的Tomcat上運行,這使得應用程序掛起。總時間中將近2/7用於GC。

這裏是JVM初始化字符串

JAVA_OPTS="$JAVA_OPTS -server -Xms120G -Xmx120G -Xmn60G -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxNewSize=40G -XX:NewSize=40G -Xloggc:$CATALINA_HOME/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+DisableExplicitGC -XX:+CMSClassUnloadingEnabled -XX:+UseLargePages -XX:LargePageSizeInBytes=1200m" 

請幫我調整tomcat的更好的性能和穩定性。

+1

你在Weblogic中是否也使用了代數JVM和120G的堆大小?如此多的尺寸必須在您指出的方式(GC時間)方面有害。 – mrod 2013-02-14 08:46:16

+0

在weblogic中,我們沒有指定生成大小。在Tomcat中,由於性能不佳,我們嘗試了不同的JVM選項組合。所以我們指定了設置。 – Shivanand 2013-02-14 08:52:21

+1

堆大小的120G聽起來像很多地獄。你有多少內存?你確定你需要這麼多的記憶嗎?您是否嘗試過更易於操作的東西(少於10G)? – mrod 2013-02-14 08:57:46

回答

3

的幾個問題馬上跳出:

  • 你做了什麼剖析和分析,導致你相信 你需要的堆空間120吉布?
  • 您是否知道一個非常大的堆的GC影響 ?
  • 您是否有足夠的物理內存用於整個Java進程的 ,而不僅僅是堆?
  • 你爲什麼要明確 設置年輕一代的60吉布最大規模和新的40吉布?

如果我們看一看這些選項您指定:

-server 
-Xms120G 
-Xmx120G 
-Xmn60G 
-XX:PermSize=512m 
-XX:MaxPermSize=512m 
-XX:MaxNewSize=40G 
-XX:NewSize=40G 
-XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps 
-XX:+UseConcMarkSweepGC 
-XX:+CMSIncrementalMode 
-XX:+DisableExplicitGC 
-XX:+CMSClassUnloadingEnabled 
-XX:+UseLargePages 
-XX:LargePageSizeInBytes=1200m 

它讀起來就像被人名單誰在讀太多了「Java性能的博客。如果您無法解釋每個選項的作用以及爲什麼將其添加爲參數,請移除該選項。

通常情況下,JVM處理本身以及 - 通常這樣的事情多少伊甸園空間需求等,如果你要設置得比堆和燙髮根的大小(甚至再更作出更好的決策? )你真的需要知道你在做什麼......

不幸的是,沒有魔法設置,尤其是如果你的應用程序特別重。從一組真實的基礎設置,使用工具,如JVisualVM,JMeter的,MAT等

開始。查看應用程序行爲的概述。記錄關於性能,堆使用情況,併發線程,吞吐量(峯值和平均值),垃圾回收花費的時間以及應用程序穩定性等指標。每次您進行更改時,請記錄相同的指標並記錄結果。最終,您將有一個適當調整的應用程序,您將瞭解每個設置是否對性能產生實際影響。

+0

+1,OP有可能對這些設置進行了嚴格的測試和研究,但如果是這樣,爲了診斷問題,其中一些細節需要在問題 – 2013-02-14 10:05:21

+0

中我們完成了所有這些分析並部署了我們的代碼weblogic的。但稍後,業務團隊決定使用Tomcat。所以我們移植了我們的代碼來使用tomcat。所以我只想知道tomcat和weblogic之間是否有任何區別?我認真地感覺一切都取決於底層的JVM,而不是應用程序服務器或Servlet容器。但是很驚訝地看到兩臺服務器之間的這種差異。 – Shivanand 2013-02-14 10:53:35

+0

@Shivanand作爲迪斯科州,我們需要知道你做了什麼。你的基本設置是什麼,你改變了什麼,爲什麼改變它們,以及什麼(如果有的話)影響每一個改變。否則,超越一般化建議是不可能的。 – Mikaveli 2013-02-14 10:56:21