WAS集群请求分发和负载均衡问题

楼主有个生产环境,有3台服务器,以下简称为A/B/C,上面建了A/B/C三个node节点,IHS和DM也部署在A上,只有1个IHS,简单的1拖3架构。建了1个水平集群,3个SERVER分布在3个node上。SERVER配置只改动了JVM大小、webcontainer大小、JVM日志、cookie名(每个server不一样),其他均未改动。IHS只...显示全部

楼主有个生产环境,有3台服务器,以下简称为A/B/C,上面建了A/B/C三个node节点,IHS和DM也部署在A上,只有1个IHS,简单的1拖3架构。

建了1个水平集群,3个SERVER分布在3个node上。SERVER配置只改动了JVM大小、webcontainer大小、JVM日志、cookie名(每个server不一样),其他均未改动。

IHS只改动了maxclients,其他未改动。

IHS PLUGIN 均为默认配置,未改动。

楼主碰到的问题:

有个应用,登录的时候会把一些信息存储到SESSION中,紧接着的后一个请求再取出来用。但是生产环境出现了下一个请求有时候会取不到上一个请求保存的SESSION的情况,概率较小。

进一步测试,如果把a server关掉,只留b/c server,取不到SESSION的情况概率大大增加,可以达到50%。

而如果a server是开着的,貌似请求大部分都发给了a server处理。

把IHS PLUGIN的日志调整为DEBUG级别,跟踪后发现了以下规律:

1)如果上一个请求是b/c server响应的,下一个请求却发给了a,于是就出现了取不到SESSION的情况。

PLUGIN-IN日志记录:DEBUG: ws_server_group: NewserverGroupNextRoundRobinServer: Round Robin load balancing ;(采用RR)

2)如果上一个请求是a server响应的,下一个请求基本上都还是交给a处理。

PLUGIN-IN日志记录:DEBUG: ws_common: websphereParseCloneID: Parsing clone ids from 0000HYWoVdhHX4hteSmeTGkOCCz:1a854qhjl;(session Affinity)

3)PLUGIN里面记录的统计信息如下,可以看到只有a1有affinityRequest,并且a1响应了绝大部分请求。

STATS: ws_server: serverSetFailoverStatus: Server Node134_cluster2_server_a1 : pendingRequests 0 failedRequests 0 affinityRequests 997 totalRequests 1026.

STATS: ws_server: serverSetFailoverStatus: Server hrac1Node01_cluster2_server_b1 : pendingRequests 0 failedRequests 0 affinityRequests 0 totalRequests 5.

STATS: ws_server: serverSetFailoverStatus: Server hrac2Node01_cluster2_server_c1 : pendingRequests 0 failedRequests 0 affinityRequests 0 totalRequests 35.

从以上测试结果来看,a server有session affinity效果,只要一开起来,会把压力都集中到这台上面。

b/c server没有session affinity效果,请求分发采用随机轮询,就可能会出现下一个请求取不到上个请求保存的SESSION的问题。

查看plugin-cfg.xml ,看到它配置了AffinityCookie="cluster2_a1",不过并没有其它两个session:cluster2_b1/cluster2_c1的配置。

也就是说,只有cluster2_a1朿 session Affinity,而其它cluster2_b1/cluster2_c1却没有。

     

如果我把cluster2_b1/cluster2_c1两个cookie也都添加到上面的affinityCookie配置里面,仍然只有cluster_a1有affinity 效果。

总结问题:WAS 为什么只给a1 赋予了AffinityCookie,而其它两个没有?这样子不是会负载失衡吗?

有没有什么办法可以使皿3个server都有Affinity效果。

收起
参与8

查看其它 2 个回答jdct的回答

jdctjdct系统运维工程师西安交大长天软件股份有限公司

两个节点,ihs在主节点上,现在问题是http://IP/snoop可以访问,但是ip/struts/不能访问,报404错,纠结我3天了,求大神给解觉一哈

系统集成 · 2016-04-22
浏览2486

回答者

jdct
系统运维工程师西安交大长天软件股份有限公司
擅长领域: 服务器WAS中间件系统改造

jdct 最近回答过的问题

回答状态

  • 发布时间:2016-04-22
  • 关注会员:3 人
  • 回答浏览:2486
  • X社区推广