优化Jboss EAP平台的12项最佳实践

日期: 2012-01-20 作者:Ruchir Choudhry翻译:杨华军 来源:TechTarget中国 英文

在过去几年里,NBC环球电影公司的Web架构团队牺牲了可观的时间和资源去改善其高度分布的企业架构。Richir Choudhry、Alpesh Vaghela以及Vaidyanathan Kothandaraman将会分享他们的见解和技巧,以及他们在增强应用性能过程中采纳的最佳实践,在这些实践中,他们并没有实际编辑或重构过任何的生产代码。   Jboss EAP 4.3生产环境的优化技术   该环境在Apache、Red Hat、Jboss和Sun JDK核心的基础上搭建,不过这些性能改善中的很多都可以普遍地应用到其他生产环境上。   最佳实践   以下是针对所有Jboss EAP 4.3生产……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

在过去几年里,NBC环球电影公司的Web架构团队牺牲了可观的时间和资源去改善其高度分布的企业架构。Richir Choudhry、Alpesh Vaghela以及Vaidyanathan Kothandaraman将会分享他们的见解和技巧,以及他们在增强应用性能过程中采纳的最佳实践,在这些实践中,他们并没有实际编辑或重构过任何的生产代码。

  Jboss EAP 4.3生产环境的优化技术

  该环境在Apache、Red Hat、Jboss和Sun JDK核心的基础上搭建,不过这些性能改善中的很多都可以普遍地应用到其他生产环境上。

  最佳实践

  以下是针对所有Jboss EAP 4.3生产环境下NBC环球电影公司行之有效的最佳实践。这些最佳实践里面,有些属于普通常识,而另一些则需要进行某种调优和测试。

  1)使用最新版本的JDK/JRE。

  对于每一列重要的Java™版本“专列”(如J2SE1.4.2,J2SE5.0,J2SE6.0)Sun/Oracle都要定期发布更新版本。比如说Java SE最新的更新版是1.6.0_21。更新版通常包括有错误修正以及性能完善。部署最新的Java™更新版是从Sun/Oracle最新、最好的性能改进中获益的便捷方式。

  2)确保打上最新的操作系统补丁。

  尽管Java是跨平台的,它一样要依靠底层的操作系统,因此让Java™平台的操作系统基础尽可能保持最新是重要的。在我们的案例中,我们是在虚拟机上使用Red Hat 5.3企业版。

  3)使用精简版的Web服务器(Apache2.2.8,2.2.15),根据应用或环境的特定需求进行编译。

  Apache有各种不同的配置参数,以便为应用提供越来越多的灵活性。选出哪些是对我们好的、哪些是应用的需求是非常有必要的。基于我们的特定需求,我们裁剪出各种Apache模块,并根据自己的特定需求重新进行编译。

  4)把代码放到本地环境而非存储;内容可以保留在存储上。

  通过将代码放到本地(在来自存储的虚拟机(VMWare)上再开辟一个空间),这并没有越过存储,相反它提高了带宽能力,这是VM Ware环境所需要的。

  5)通过恰如其分地从应用服务器上使用所需的东西来给应用服务器(Jboss EAP 4.3)瘦身

  通过对Jboss 4.3 EAP进行修剪,我们移除了若干缺省随J2EE容器而来的服务,如JMS、基于会话的集群、大规模的对象池、连接刺探(connection poking)、XA交易、Modjk tomcat可连接性等等。

  6)采用info日志

  在产品中仅使用Info类型的日志;这减少了文件系统的I/O操作。

  7)测试各种不同的JVM配置设置,确保采用最适合环境的配置

  我们采用这种办法来找出适合自己环境的规模大小,以及它是如何随着不同的应用需求而波动的。基于我们的测试,我们发现2个VCPU(虚拟处理器)、4 GB内存对于我们的应用/环境来说是最合适的。有关最成功的JVM配置的细节信息我们会在此后的文章中详细描述

  8)测试各种不同的CPU或VCPU、内存选项,以便找出哪个最适合于环境。

  CPU及内存的合适规模取决于所使用的硬件类型、设计的应用类型,多线程环境的使用方式、平台的类型等等。我们在ESX池上使用VM Ware RED HAT 5.3企业版,我们进行各轮不同的测试(细节见附录4),发现每个Jboss EAP 4.3实例各需要2VCPU、4 GB内存。

  9)采用基于硬件的负载均衡来提供一个高可用的环境;如果没有业务需要,避免做集群。

  使用基于软件的集群是很有吸引力的,它可以在不同的水平上用多种方式来实现。但是在所有可能的场景下它都会产生过载的现象。

  例子:HAPartion是一项用于AS集群环境下的各种任务的通用服务。在其核心层,是在JGroups Channel之上建立的一个抽象,JGroups Channel则在/从一到多个集群成员上为生成/接收RPC调用提供支持。HAPartion允许服务用它来共享单个Channel,并通过它进行并发RPC调用,消除了为每一个服务创建器自己的Channel时的配置的复杂性以及运行时的过载现象。

  10)如果产品中不需要的话请关闭热部署

  看到各种供应商都支持热部署特性大家都会认为它是一个“很酷的主意”,但它并没有看起来那么健壮。打心眼里任何一个供应商都会不建议这些特性出现在生产环境里,因此,一旦决定在你运行网站或关键应用的的生产服务器上使用它的时候,你要多加小心才是。此外,在热部署期间,Container要花费显著的的CPU时间去轮询应用的变更。这就是我们决定不采用热部署的唯一原因。

  11)如果可能的话,总是在生产模式下启动JBoss EAP 4.3

  在我们的一系列测试过程中,我们的确在多种启动模式里找到了最好的启动模式(缺省、完全、最小以及生产模式),那就是生产模式。这个模式下我们可能得到最好的性能。

  12)减少变量

  要注意到,不同的系统活动,以及运行于你的系统之上的其他应用运作,这些都会给衡量任何应用(包括Java应用)的性能引入可观的差异性。操作系统的活动以及其他应用可能会引入CPU、内存、磁盘或网络资源冲突,这些都会对你的测量造成干扰。

相关推荐

  • 为什么开源企业的开源大旗正在褪色

    最近这几年,开源一直是人们比较关注的话题,不过现在也该到冷静下来进行思考的时候了,真正的开源公司已经利用开源赚得盆满钵盈。

  • 开源PaaS技术手册

    开源业界向来不太平,关于诸多技术的开源未来足以让很多粉丝兴奋躁动起来。商业软件开始揉进开源技术,开源技术也成为IT大佬们得基础架构,这一种趋势蔓延的缓慢有有力。在广告漫天飞得云计算中,开源的分量有多重?是否走向云端就意味着走向开源?开源的PaaS如何选择?如何为开源项目选择PaaS厂商?哪些服务平台值得我们关注,下面我们一一来揭晓。

  • 你的Java开发工具包有没有MVEL?

    MVEL最初是Mike Brock的Valhalla项目的表达计算器。Valhalla本身是一个早期的Seam,就像为自动化“out of the box”web应用而生的框架,虽然Valhalla现在是休眠状态……

  • Java企业开发反思

    JBoss是一套开源的企业级Java中间件系统,用于实现基于SOA的企业应用和服务。目前JBoss已经被RedHat收购。在各种J2EE应用服务器中JBoss是最受欢迎而且功能最为强大的应用服务器。