首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Websphere Application Server -究竟需要什么才能快速启动?

Websphere Application Server -究竟需要什么才能快速启动?
EN

Stack Overflow用户
提问于 2009-07-24 14:52:12
回答 8查看 27K关注 0票数 23

我使用的是集成测试环境附带的RationalApplicationDeveloperV7.0。当我开始调试我的webapp时,服务器在调试模式下的启动时间接近5-6分钟--足够我休息一下了!

有时,这让我非常恼火,以至于我开始咒骂IBM构建的是操作系统而不是应用服务器!生成20+进程和无用的服务,没有记录的配置来调整它,以更快地启动。

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

我没有web服务,没有企业bean,没有队列,只有一个简单的web应用程序,它需要一个连接池。你过去有没有做过一些事情,让你的集成测试环境在调试模式下快速启动,从而消耗更少的RAM?

更新:我尝试禁用了一些服务(国际化、默认应用程序等)现在WebSphere服务器每况愈下。它不仅不会花费可怕的启动时间,还会时不时地冻结长达2分钟。:-(听起来,优化并不是一件很好的事情!

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-07-24 15:50:29

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

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

代码语言:javascript
复制
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

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

这样可以避免频繁地重新启动服务器,从而避免Websphere的启动时间问题。

如果服务器上的二进制文件和IDE中的源代码不同步,您可能会得到一些奇怪的结果,但总的来说,这不是问题。

票数 8
EN

Stack Overflow用户

发布于 2012-09-10 23:49:50

其中一个主要原因是,您有一个包含许多模块、类、清单、XML描述符等的大型应用程序,并且Websphere应用程序服务器启动过程本身是单线程的(因此,如果每个应用程序具有相同的权重,则它们可以在单独的线程中启动)。另一个原因是Eclipse EMF和JST框架在启动和发布/部署期间的I/O密集度很高。

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

首先,检查和评估您的硬件,包括CPU、内存和硬盘。您的处理器在启动过程中是否长时间100%运行?如果是这样,处理器可能太弱了。是否发生了分页?然后你可能需要放入更多的内存。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. 在启动期间禁用PMI和不必要的JVM并修复瓶颈(如果发现瓶颈)。

其他可能提高性能的JVM参数:

  • com.ibm.cacheLocalHost=true
  • 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=true
  • org.eclipse.jst.j2ee.commonarchivecore.disableZip=true

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

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

Webcontainer属性:

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

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

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

Stack Overflow用户

发布于 2009-07-24 16:40:21

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

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

你可能已经尝试过了,但这里有一个简单的清单,上面列出了你需要亲自尝试的事情。确保RAD中的服务器设置启用了以下选项:

用于测试和开发workspace

  • Minimize应用程序文件的
  • 优化服务器
  • Run服务器将资源复制到服务器

如果您不需要“启用通用测试客户端”,请取消选中它。

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

  • 在开发中运行启动
  • 按需启动组件

您还可以卸载创建新WAS配置文件时默认安装的ivt应用程序。然后是一些常见的东西,比如没有太过碎片化的驱动器和适当设置的页面文件大小。

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1178210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档