WebSphere Application Server V8.5 常见问题及解答(智能管理)



WebSphere Application Server V8.5 的最重要的新特性是新的 Liberty Profile 以及智能管理。本 FAQ 为您汇集了关于 WAS V8.5 的问题集锦,从智能管理、 Liberty Profile、性能等方面帮助您解答您使用过程中可能遇到的问题。

## 在智能管理中,动态集群中每个节点所承担的负载是相同的吗?

动态集群中每个节点根据权重(Weight)来承担负载。权重代表的是集群中各个成员之间,应该如何分配负载的一个相对比率值。但在动态集群里,权重是自动分配和实时调整的,手工调整不会起到效果。所以用户不需要关注动态集群中的权重。

## 使用随需应变路由(ODR)会对整个WAS的集群环境有性能影响吗?装ODR的机器有没有具体的硬件需求?

随需应变路由(ODR)本身设计采用了异步机制,支持大量请求的并发处理,并且可以将多个 ODR 组成集群,来进一步扩大处理能力。因此不用担心其性能问题。

ODR 的安装取决于负载的不同,ODR 对 CPU 和内存的消耗也不同。ODR 的具体硬件需求不能一概而论,会受多个因素影响,如:

最大并发请求数 平均请求负荷和响应负荷
入栈和出栈的 SSL 链接比率 ODR 缓存中的响应的比率
一般建议将 ODR 单独装在一台性能较好的机器上,避免和应用服务器或其它进程争用 CPU 和内存的情况。

## 按传统的方式配置静态集群,通常每个应用服务器会运行多个应用。在动态集群(dynamic cluster)的环境下,每个应用是否要部署在不同的动态集群上?有没有推荐的最佳实践?

规划动态集群时, 需要对您当前的资源利用率以及应用的各种需求进行全面考虑,而不是简单、机械的划分应用与动态集群的对应。 例如,您当前的环境中有 200 台机器,15 个应用 , 简单、机械的建立 15 个动态集群 , 每个动态集群都横跨这 200 台机器,并不是一个很好的规划,这将导致您每台机器上创建太多的 JVM ( 至少 15 个应用服务器实例 +1 个节点代理 ), 对硬件资源要求提高。因此,您需要按照以前方案规划资源分配:

1. 了解各个应用的优先级、忙闲时分配、对安全性的需求
2. 针对需要安全性隔离,或者负载一直很大、很稳定的(一直很忙,不会有秒杀等极端情形)关键应用,可以考虑单独划分出节点组别(node group,即单独的资源池 ) 生成动态集群 , 保证这类应用的资源占用需求。 反正他们的负载很稳定,是你怎么规划都省不出来的,隔离出来以后安全性需求可以得到很好地保证。
3. 针对需要安全性隔离,但负载有忙闲时分别的应用,可以给他们在共享的资源池中生成动态集群 , 并规划动态集群隔离机制,保证该应用在某个机器上运行时,可以独占该机器的资源。
4. 针对没有安全性隔离需求,工作负载不是很重,或者不是重要的应用,或者负载曲线比较相似的一类应用,可以安装到同一个动态集群上,反正他们的负载曲线相似,一荣俱荣,一损俱损。
5. 即使是共享区的机器,也不能只有一个 node group,让动态集群横跨所有机器。 正确的方式是,在同一个机器上,实现忙、闲, 优先级高、优先级低的不同类型应用的合理组合,一方面最大限度的提高资源的共享率,另一方面降低 ODR 的计算量和决策难度。
按照 2、3、4、5 划分后,比如原来是 200 个机器的数据中心 , 你可能就分为了 3 类资源池,独占区,共享区,还能省出一个空闲区。系统管理员通过观察资源利用率和负载的变化,可以随时把资源紧张的动态集群动态扩展到空闲区机器上(动态更改 node group, 然后动态集群实例会自动生成),在闲时回收,以应付一些计划外的突发情况(比如秒杀)。

## 对于智能管理的版本管理功能,在同一个集群里能安装同一应用的不同版本吗?

可以,只要您在安装新版本时,标记出它的版本号,就可以在一个 WAS 的集群环境里面安装同一个应用的不同版本

## ODR可以取代HIS(IBM HTTP Server)进行使用还是能够共同使用?如果同时使用,请求就要经过IHS和ODR最后到达应用,这样会使性能降低吗?

ODR 作为一个智能的代理服务器 , 可以根据后台的负载,对从浏览器发送进来的请求做出更加合理的转发,从而提高总体的资源利用率,提高整体效率。确实转发路径过长,会对性能有一定的影响,但影响不大。

ODR 和 Dmgr 可以放在一个应用服务器上,但一般不建议那么做。 ODR 在一个单独的节点上,可以获得更好的性能。

如果客户原有的拓扑环境中,有 IHS, 可以继续使用,让 IHS 把请求转发到 ODR, 让 ODR 做进一步转发即可。如果原来就没有,可以不加 HIS。

## 智能管理(Intelligent Management)能监控历史数据吗?

可以, 登陆 WAS 的管理控制台,在管理控制台 -> 系统管理 -> 虚拟数据服务 -> 启动,之后,智能管理会记录较长一段时间应用服务器和应用的运行情况。

但这些运行情况均以 .csv 方式存储,需要客户用 Excel 或者其它工具进行进一步分析

## 动态集群中的各个应用服务器的配置可以同步修改吗? 在建动态集群时是如何手动定义其成员的?

在智能管理的动态集群中存在应用服务器模板(server template)的概念。Server template 不需要手工生成,动态集群生成后,访问 WAS 管理控制台 -> 动态集群 -> < 集群名称 > -> 应用服务器模板 , 可以对其中列出的属性进行配置,修改后的配置会被自动同步到动态集群所包含的所有应用服务器配置中,下次启动应用服务器时,新的配置会生效。

假设 WAS 的集群环境中有 5 个定制化节点(custom node), 但用户只希望在 node1,node2, node3 上生成动态集群,则可以如下操作:

步骤 1: 在 WAS 的管理控制台 -> 系统管理 -> 节点组中,生成一个新的节点组 , 比如名字为 group1, 把 node1, node 2, node3 加入 group1 中

步骤 2: 在创建动态集群时, 在定义动态集群成员这一步骤中,选择 node_nodegroup = ‘group1’。 其他采用默认值即可。

这样用户就在 node1,node2, node3 上生成了一个动态集群。如果下次用户希望这个动态集群也覆盖 node 4, 就把 node4 放到 group1 中,动态集群就可以自动扩展。

按默认方式生成的动态集群,一般在每个节点上,只有一个应用服务器实例 , 如果用户希望增加,选择在节点上垂直扩展应用服务器实例 , 按照机器能力输入。

另外,创建动态集群时,也可以手工定义集群成员,但需要您实现有一个静态的集群 , 才能做相应的转换。

## 随需应变路由(ODR)是如何获取WAS的拓扑结构信息以及后台应用服务器的运行时状态的?

ODR 作为 WAS 集群环境里面的一个服务器 ( 只不过不是应用服务器 , 是随需应变路由服务器 ), 它有能力通过 Dmgr,节点代理获取全部的拓扑信息,应用的部署情况, 及后台的应用服务器的工作状态。 因此可以作为一个智能的 HTTP 代理服务器 , 决定请求的路由方式。