J2EE应用程序部署:每台应用程序服务器上部署一个应用程序还是多个应用程序 - 编程入门网
J2EE应用程序部署:每台应用程序服务器上部署一个应用程序还是多个应用程序时间:2011-04-11 IBM Tom Alcott引言 J2EE 规范 对将 J2EE 应用程序打包成一个文件扩展名为 EAR(Enterprise Archive( 企业压缩文档))的文件进行了定义,并且规定这些应用程序彼此独立。然而,该规范对 于如何最佳部署应用程序却只字未提。您是应该选择在每台应用程序服务器上只部署一个 J2EE 应用程序(EAR 文件)?还是应该在单独一台应用程序服务器上部署多个 J2EE 应用 程序(EAR 文件)? IBM® WebSphere® Application Server支持这两种选择。您应该选择哪种方式 ?本文探讨了针对这两种选择您需要考虑的许多问题。当您阅读本文时,请记住:一个 EAR 文件可以包括一个或多个 WAR(Web 应用程序压缩文档(Web Application Archive) )文件(我们将单独讨论将若干个 WAR 文件打包成一个 EAR 文件的打包准则,本文不涵 盖这方面的内容)。 性能 一般来说,一台机器上的进程(应用程序服务器、HTTP 服务器进程等)数越少,在这 台机器上发生内存交换、页面调度或上下文切换的可能性就越小。我们期望的结果是操作 系统将投入较少的资源用于进程管理,从而使更多的系统资源能够被用于处理应用程序工 作负载。这样会改善应用程序性能。 请考虑有 20 个应用程序的情况;在这种情况下,您将创建 20 台应用程序服务器,每 个应用程序一台。如果每台服务器都有一个 256 MB 的 Java 堆,那么这些应用程序服务 器所要求的内存将至少为 5 GB。在极端情况下,如果大量应用程序被部署到一个节点,这 些应用程序服务器将不得不被共享;否则,物理内存将被用光。对于这种情况,CPU 资源 也是一个限制因素,尽管通常只有在机器满负载(被定义为 85% 的 CPU 正在使用中)时 (因为进程级的内务处理(housekeeping)任务会消耗大量的 CPU 周期),人们才会关注 CPU 资源。当然,通常只有当运行接近一台给定机器的内存极限或 CPU 极限时,进程管理 的开销才会成为一个问题。幸运的是,为了顾及工作负载峰值(spike)或停机(outage) ,大多数组织采用的标准做法是以 50% 的 CPU 利用率运行生产服务器,所以这种极端情 况很少发生。 作为一个示例,请考虑一下这个简单的测试案例:两个应用程序在各种不同负载下运行 ,它们先是各自被部署在一台应用程序服务器上,然后被部署在单独一台应用程序服务器 上。所有的测试都在具有 2 GB RAM、运行 iPlanet 6.01 和 WebSphere Application Server 4.03 高级版的 2 CPU HP-UX 服务器上运行。Oracle 8.1.7 数据库单独使用一台 服务器。
图 1. 从上面的测试案例中可以看到,只用一台应用程序服务器运行两个应用程序会使性能得 到显著改善,改善程度从 9.6% 到 18.7% 不等。尽管每个应用程序都呈现对性能有正面影 响,但因每个应用程序施加的工作负载不同,所以改善程度也有所不同。应用程序 A 针对 每个请求执行几次数据库选择以及一次更新,而应用程序 B 针对每个请求则只执行一次或 两次数据库选择,且每隔 8 到 10 个请求进行一次更新。在任何情 |
|||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |