2013-02-14 133 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