Websphere应用服务器 - 开始任何快速的操作到底是什么?

Jay*_*Jay 22 java performance websphere java-ee

我正在使用带有集成测试环境的Rational Application Developer v7.0.当我调试我的webapp时,调试模式下的服务器启动时间接近5-6分钟 - 足够的时间休息一下!

有时,我很生气,因为我开始诅咒IBM构建操作系统而不是应用服务器!产生20多个流程和无用的服务,没有记录的配置来调整它,以更快的速度启动.

我相信有很多java开发人员会同意我的意见.我试图通过我的管理控制台禁用默认应用程序和一组服务,但这没有多大帮助.

我没有web服务,没有企业bean,没有队列,只是一个需要连接池的简单Web应用程序.你有没有做过一些事情来制作你的集成测试环境,在调试模式下快速启动并在那里消耗更少的RAM?

更新:我尝试禁用一些服务(国际化,默认应用程序等......),现在WebSphere服务器变得越来越糟糕.它不仅不需要可怕的启动时间,它会不时地冻结长达2分钟.:-(听起来,优化并不是一件好事,总是!

Nic*_*olt 8

调试服务器代码的最佳方法是使用远程调试.

首先,您需要将以下内容添加到服务器启动脚本中的JVM参数:

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
Run Code Online (Sandbox Code Playgroud)

这将导致JVM侦听指定的端口,然后从IDE启动针对该端口的远程调试会话并进行调试,就像代码在同一进程中运行一样.

以这种方式工作可以防止您频繁地重新启动服务器,从而在Websphere的启动时间内解决您的问题.

如果服务器上的二进制文件和IDE中的源不同步,你可以获得一些奇怪的结果,但总的来说这不是问题.


Rob*_*und 7

其中一个主要原因是您拥有一个包含许多模块,类,清单,XML描述符的大型应用程序,以及Websphere应用程序服务器启动过程本身就是单线程的事实(因此每个应用程序可以单独启动线程,如果他们有相同的权重).另一个原因是Eclipse EMF和JST框架在启动和发布/部署期间非常I/O密集.

启动繁琐的另一个原因是在发布/部署期间将发生的注释扫描.可以以各种方式控制和修改该注释扫描.看看这个网站:http: //wasdynacache.blogspot.se/2012/05/how-to-speed-up-annotation-processing.html

首先,检查和评估您的硬件,包括CPU,内存和HDD.您的处理器在启动期间长时间运行100%吗?如果是这样,处理器可能太弱.是否发生分页?那么你可能需要增加一些RAM.Websphere/eclipse JST和EMF框架非常强大I/O,因此您应该考虑投资SSD光盘.您还应该确保计算机上的其他进程(病毒防护软件等)不会从Websphere Java进程中窃取硬件资源.

所以对于硬件:1.处理器 - 一个相当快的处理器,因为发布和启动大多是单线程的,你不需要那么多的cpu内核2.内存 - 你至少需要512Mb的物理RAM,这取决于大小你当然的应用程序.3.存储 - 我肯定会选择快速SSD,因为底层的eclipse框架是I/O密集型的.

以下是一些减少启动阶段占用空间的技巧.请在应用这些设置之前确保记录基线启动,以便您可以观察启动的差异,即减少启动时间.

  1. JVM args:-Xverify:none -Xquickstart -Xnoclassgc -XX:+ UseNUMA -XtlhPrefetch -Xgcthreads4(我的机器上安装了4个虚拟处理器)
  2. 扩展堆大小以匹配应用程序的需求.
  3. 禁用应用程序的自动启动以减少发布时间.
  4. 禁用PMI和不必要的跟踪.
  5. 在启动期间配置应用程序并修复瓶颈(如果找到).

其他可能获得性能的JVM参数:

  • com.ibm.cacheLocalHost =真
  • com.ibm.ws.classloader.zipFileCacheSize = 512
  • com.ibm.ws.classloader.resourceRequestCacheSize = 1024  
  • com.ibm.ws.management.event.pull_notification_timeout = 20000
  • com.ibm.ws.amm.scan.context.filter.packages =真
  • org.eclipse.jst.j2ee.commonarchivecore.disableZip =真

Jvm参数将使Websphere应用程序服务器立即停止:

  • com.ibm.ejs.sm.server.quiesceTimeout = 0
  • com.ibm.ejs.sm.server.quiesceInactiveRequestTime = 1000

Web容器属性:

  • com.ibm.wsspi.jsp.disableTldSearch =真
  • com.ibm.wsspi.jsp.disableResourceInjection =真

可以指定的JVM参数eclipse.ini(注意堆参数是根据我的环境条件配置的)

  • -Dcom.ibm.ws.management.event.max_polling_interval = 5000
  • -Xquickstart
  • -Xverify:无
  • -Xmxcl25000
  • -Xjit:dataTotal = 65536
  • -Xcodecache64m
  • -Xscmx48m
  • -Xnolinenumbers
  • -Xverify:无
  • -Xmnx64m
  • -Xmx1446m
  • -Xmnx64m
  • -XX:+ UseCompressedOops
  • -XX:+ UseNUMA


sva*_*hon 6

5到6分钟是不正常的.我每天都使用RAD和WAS,并获得不错的启动时间.您运行的是哪个版本的WAS以及您拥有多少RAM?

如果为同一WAS配置文件共享多个工作空间和项目,请考虑为工作空间创建新的WAS配置文件.

你可能试过了,但这里有一个简单的清单,可以直接尝试.确保RAD中的服务器设置启用了以下选项:

  • 优化服务器以进行测试和开发
  • 使用工作区上的资源运行服务器
  • 最小化复制到服务器的应用程序文件

如果您不需要,请取消选中"启用通用测试客户端".

在管理控制台中,您可以验证某些服务器设置,例如

  • 在开发模式下运行
  • 并行启动
  • 根据需要启动组件

您还可以在创建新的WAS配置文件时卸载默认安装的ivt应用程序.然后通常的事情,如不太碎片的驱动器和正确设置的页面文件大小.

您可能已经知道的最后一件事,重新发布到您的服务器而不是重新启动它.


duf*_*ymo 5

这就是Spring诞生的原因之一.

你甚至不需要提供像JMS,远程处理等所有的细节.你最好使用Tomcat,ActiveMQ和OpenEJB.

除了WebSphere之外的 任何东西